Erhalte einen Fehler mit Maven und Java 8 (jdk1.8.0_45). Dieses Problem tritt nicht mit Java 7.Maven Fehler mit Java 8
MCVE
eine Probe Maven Projekt. Zum Beispiel:
mvn archetype:create -DgroupId=testinovke -DartifactId=testinvoke
Erstellen Sie den folgenden Inhalt in dem erzeugten App.java
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();
}
}
Kompilieren Sie das Maven-Projekt-Datei:
mvn clean compile
Ausgabe
Holen Sie sich das folgende Fehler:
testinvoke/src/main/java/testinovke/App.java:[25,18] method invoked with incorrect number of arguments; expected 0, found 1
Versucht es mit Maven 3.0.4 und 3.3.3. Dieses Problem tritt nicht auf, wenn ich direkt mit App.java mithilfe des Javac-Befehls kompiliere.
Funktioniert hier mit Java 1.8.0_45 und Maven 3.2.3. –