相关疑难解决方法(0)

Kotlin没有看到Java Lombok访问器?

使用Kotlin 1.0.0版本(在IntelliJ 15中编译).

println(myPojoInstance.foo)
Run Code Online (Sandbox Code Playgroud)

当它尝试编译引用基于Lombok的POJO的代码(在IntelliJ或Gradle中)时,它会给出错误"无法访问'foo':它在'MyPojo'中是'私有'.这是真的,它们都是私有的,我的对象有@Value @Builder用于lombok注释.

我试过专门调用getFoo(),但它说"getFoo的未解析引用".也许有一些技巧可以让Kotlin意识到如何处理lombok注释?

println lombok kotlin

57
推荐指数
4
解决办法
1万
查看次数

属性包括/排除Kotlin数据类

假设我只想在生成的equals和hashCode实现中包含一个或两个字段(或者可能排除一个或多个字段).对于一个简单的类,例如:

data class Person(val id: String, val name: String)
Run Code Online (Sandbox Code Playgroud)

Groovy有这个:

@EqualsAndHashCode(includes = 'id')
Run Code Online (Sandbox Code Playgroud)

龙目岛有这个:

@EqualsAndHashCode(of = "id")
Run Code Online (Sandbox Code Playgroud)

在Kotlin这样做的惯用方法是什么?

到目前为止我的方法

data class Person(val id: String) {
   // at least we can guarantee it is present at access time
   var name: String by Delegates.notNull()

   constructor(id: String, name: String): this(id) {
      this.name = name
   }
}
Run Code Online (Sandbox Code Playgroud)

虽然感觉不对......我真的不想name变成可变的,额外的构造函数定义很难看.

kotlin

27
推荐指数
5
解决办法
6767
查看次数

标签 统计

kotlin ×2

lombok ×1

println ×1