java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LayerRecord {
private Integer id;
private String name;
...
}
kotlin
val layerName = layerRecord.name.orEmpty();
-
在 Android Kotlin 开发中,上述代码出现如下错误信息
Cannot access 'name': it is private in 'LayerRecord'
问题原因
-
Record 类中的 name 字段是 private 的
-
虽然用了
@Data注解,但 Kotlin 无法识别 Lombok 生成的 getter
处理策略
- 显式添加 getter,确保 Kotlin 能识别
java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LayerRecord {
private Integer id;
private String name;
...
public String getName() {
return name;
}
}
kotlin
val layerName = layerRecord.getName().orEmpty();