2

我添加了这个类:

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 无法识别该方法)

我已经设置:

  • 启用注释处理。
4

2 回答 2

1

仍然是实验性功能 - 可能原因就在这里

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

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

顺便说一句 - Eclipse 智能感知行为类似,但它没有显示任何错误。

于 2017-04-02T09:17:33.397 回答
0

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

看看它是如何工作的

于 2019-03-31T15:08:53.737 回答