具有可为 null 的组件的 Java 记录
我真的很喜欢在Java 14中添加记录,至少作为预览功能,因为它有助于减少我对简单,不可变的“数据持有者”使用lombok的需求。但是我在实现可为 null 的组件时遇到了问题。我试图避免在我的代码库中返回以指示值可能不存在。因此,我目前经常在龙目岛使用类似以下模式的东西。null
@Value
public class MyClass {
String id;
@Nullable String value;
Optional<String> getValue() { // overwrite the generated getter
return Optional.ofNullable(this.value);
}
}
当我现在尝试对记录使用相同的模式时,不允许声明。incorrect component accessor return type
record MyRecord (String id, @Nullable String value){
Optional<String> value(){
return Optional.ofNullable(this.value);
}
}
由于我认为现在首选使用s作为返回类型,我真的很想知道为什么会有这个限制。我对用法的理解是错误的吗?我如何实现相同的目标,而不添加另一个不隐藏默认签名的具有另一个签名的访问者?在这种情况下根本不应该使用?Optional
Optional