import java.lang.invoke.*;
public class InvokeDynamicDemo {
public static double doubleIt(double d){
System.out.print("Doubling it");
return d*2;
}
public static void main(String[] args) throws Throwable {
MethodHandles.Lookup lookUp = MethodHandles.lookup();
MethodHandle doubleIt = lookUp.findStatic(InvokeDynamicDemo.class, "doubleIt", MethodType.methodType(double.class,double.class));
doubleIt.invokeExact(2.0D); // Exception
//doubleIt.invoke(2.0D); // No exception thrown
}
}
线程“主”java.lang.invoke.WrongMethodTypeException 中的异常:预期 (double)double 但在 java.lang.invoke.Invokers 的 java.lang.invoke.Invokers.newWrongMethodTypeException(Invokers.java:340) 发现 (double)void .checkExactType(Invokers.java:351) 在 InvokeDynamicDemo.main(InvokeDynamicDemo.java:32)
这段代码有什么问题,我想不通。请帮忙。