在 Android Kotlin 开发中,Kotlin 无法识别 Lombok 生成的 getter

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'

问题原因
  1. Record 类中的 name 字段是 private 的

  2. 虽然用了 @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();