lombok @ExtensionMethod:无法解析方法

时间:2017-04-02 08:28:28

标签: lombok intellij-lombok-plugin

我已添加此课程:

public class StringExtensions {
  public static String makeMusical( String in ) {
    return "1";
  }
}

@ExtensionMethod({StringExtensions.class})
public class App {
   public static void main(String[] args) {
   String a = "A".makeMusical();  //compiles but ide shows:"cannot resolve method makeMusical"
  }
}

但是当我尝试在字符串上使用它时,我得到了:

  

“无法解决方法makeMusical”

(该解决方案是在IntelliJ上构建并运行的,但我没有智能感知/ ide无法识别该方法)

我已经设定:

  • 启用注释处理。

2 个答案:

答案 0 :(得分:1)

仍然是实验性功能 - 原因可能是here

创建的方法makeMusical是静态的,所以我猜你在"A".之后尝试智能感知时IDE会尝试仅使用非静态方法自动完成。

希望当链接中的问题得到解决时,IDE插件将会相应地运行。

BTW - Eclipse intellisense行为类似,但它并没有显示任何错误。

答案 1 :(得分:0)

Manifold完全支持IntelliJ中的扩展方法。还有其他需要考虑的方面,Manifold将扩展方法更清晰地集成到Java编译器中,因此Lombok扩展存在的错误对于Manifold来说不是问题,例如,Manifold完全支持使用通用lambda等。

Watch how it works