Lombok val 和 var 无法在 Android 上工作

Lombok val and var not working on Android

我正在将 Project Lombok 集成到我们的 Android 应用程序中。我 运行 遇到了使用 val 和 var 的问题。当我为类型为 var 或 val 的字段分配一个值(任何类型)时,出现不兼容类型错误。

private final val example = new ArrayList<String>();

private var eg2;
eg2=getRandomString();

有人在 Android 中尝试过 var 和 val 吗?任何帮助,将不胜感激。

我使用的是 Lombok 版本 1.16.12,Android Studio 2.3 Beta 1,Android 插件版本 2.2.3,以及 Gradle 3.2.1。

我想我可以看到你的问题 - @val@var 仅适用于 local 变量 - 即方法或块中的变量。

因此以下内容将起作用:

public class ValExample {
  public String example() {
    val example = new ArrayList<String>();
    example.add("Hello, World!");
    val foo = example.get(0);
    return foo.toLowerCase();
  }
}

但它不适用于 class 成员(这不会构建):

public class BadValExample {
  private val example = new ArrayList<String>();
}

@var也需要手动启用。为此,请将 lombok.config 添加到您的项目,内容如下:

lombok.var.flagUsage = ALLOW