如果指针为 null 只是为了获取其字段或不创建新对象是否好?
Is it good to create new object if pointer is null just to get its fields or not?
这样写好不好?
UserInfo myMethod(User user) {
user = Optional.ofNullable(user).orElse(new User())?
String name = user.getName()
String type = user.getType();
return new UserInfo(name, type);
}
或者更好地使用标准方式:
UserInfo myMethod(User user) {
if(user == null) { return null }
String name = user.getName()
String type = user.getType();
return new UserInfo(name, type);
}
是否有人可以提供良好的 null 安全最佳实践链接?
第一个版本看起来有点代码味道:你 return 一个 UserInfo
对象对应一个空 User
。这似乎是一种违反直觉的方法,如果字段 name
和 type
未指定,可能会导致各种验证问题。第二个版本更好,因为如果用户为 null,它只是 returns null。另一种方法是强制调用者使用以下方法传递非空参数:
UserInfo myMethod(User user) {
Objects.requireNonNull(user);
...
}
这样写好不好?
UserInfo myMethod(User user) {
user = Optional.ofNullable(user).orElse(new User())?
String name = user.getName()
String type = user.getType();
return new UserInfo(name, type);
}
或者更好地使用标准方式:
UserInfo myMethod(User user) {
if(user == null) { return null }
String name = user.getName()
String type = user.getType();
return new UserInfo(name, type);
}
是否有人可以提供良好的 null 安全最佳实践链接?
第一个版本看起来有点代码味道:你 return 一个 UserInfo
对象对应一个空 User
。这似乎是一种违反直觉的方法,如果字段 name
和 type
未指定,可能会导致各种验证问题。第二个版本更好,因为如果用户为 null,它只是 returns null。另一种方法是强制调用者使用以下方法传递非空参数:
UserInfo myMethod(User user) {
Objects.requireNonNull(user);
...
}