【发布时间】:2021-09-17 16:39:18
【问题描述】:
这样写好不好?
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);
}
还有人可以帮助提供良好的空安全最佳实践链接吗?
【问题讨论】:
-
这取决于为什么
user首先被允许为空。 -
处理
null的一个重要部分是定义当您将null传递给它时会发生什么。一个简单的方法是直接禁止它(如果它发生了就抛出异常)。并且只要您的项目在这方面有一个良好的一般指导原则(例如,“除了 A、B 和 C 例外,并且需要使用 X、Y 和 Z 表示的情况外,不允许空值作为参数”,您就不需要甚至总是需要阅读该文档以了解如何处理null。 -
您可以为 UserInfo 创建一个新的构造函数,该构造函数接受一个可能为 null 的 User 对象。
标签: java optional nullable null-safety