我遇到以下代码的问题:
public class A {
public String someMethod() {
return "some";
}
}
public class AExtension {
public static void extensionMethod(A a, String s) {
System.out.println(a.someMethod() + s);
}
}
@ExtensionMethod({ AExtension.class })
public class ExtensionMethodExample {
public void test(List<String> someList) {
A a = new A();
someList.stream().forEach(x -> a.extensionMethod(x));
}
}
在使用Maven编译此代码时,我得到:
[ERROR] [...]ExtensionMethodExample.java:[12,49] cannot find symbol
symbol: method extensionMethod(java.lang.String)
location: variable a of type [...].A
只有在使用Maven进行编译时才会出现错误,而在Eclipse中运行时,一切似乎都能正常工作。
我的一些配置:
maven-compiler-plugin: 3.5.1
lombok: 1.16.10 (I also tried 1.16.2)
更新 当然,没有Lambda表达式的调用有效。