Getting error with Maven and Java 8 (jdk1.8.0_45). This issue does not occur with Java 7.
Mcve
Create a maven sample project. For instance:
mvn archetype:create -DgroupId=testinovke -DartifactId=testinvoke
Create the following content in the generated App.java file
package testinovke; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; public class App { public static MethodHandles.Lookup lookup; public static class Check { public void primitive(final int i){ } public void wrapper(final Integer i){ } } public static void main(String[] args) throws Throwable { Check check = new Check(); MethodType type = MethodType.methodType(void.class, int.class); MethodHandle mh = lookup.findVirtual(Check.class, "primitive", type); mh.invoke(); } }
Compile the maven project:
mvn clean compile
Output
You will get the following error:
testinvoke/src/main/java/testinovke/App.java:[25,18] method invoked with incorrect number of arguments; expected 0, found 1
Tried this with both Maven 3.0.4 and 3.3.3. This problem does not exist if I directly compile the App.java application using the Javac command.
source share