本文整理匯總了Java中java.lang.invoke.MethodHandles.Lookup.unreflect方法的典型用法代碼示例。如果您正苦於以下問題:Java Lookup.unreflect方法的具體用法?Java Lookup.unreflect怎麽用?Java Lookup.unreflect使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類java.lang.invoke.MethodHandles.Lookup
的用法示例。
在下文中一共展示了Lookup.unreflect方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: main
import java.lang.invoke.MethodHandles.Lookup; //導入方法依賴的package包/類
public static void main(String[] args) throws Throwable {
Lookup lookup = MethodHandles.lookup();
Method fooMethod = Foo.class.getDeclaredMethod("getName");
// fooMH2 displaces fooMH1 from the MemberNamesTable
MethodHandle fooMH1 = lookup.unreflect(fooMethod);
MethodHandle fooMH2 = lookup.unreflect(fooMethod);
System.out.println("fooMH1.invoke = " + fooMH1.invokeExact());
System.out.println("fooMH2.invoke = " + fooMH2.invokeExact());
// Redefining Foo.getName() causes vmtarget to be updated
// in fooMH2 but not fooMH1
redefineFoo();
// Full GC causes fooMH1.vmtarget to be deallocated
System.gc();
// Calling fooMH1.vmtarget crashes the VM
System.out.println("fooMH1.invoke = " + fooMH1.invokeExact());
}