java—若指针为null只是为了获取其字段,那个么创建新对象是否合适?

8wtpewkr  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(237)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**编辑这篇文章,更新这个问题,以便用事实和引文来回答。

三天前关门。
改进这个问题
这样写好吗?

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);
}

是否有人可以提供良好的零安全最佳实践链接?

wgx48brx

wgx48brx1#

第一个版本看起来很像代码味道:返回一个 UserInfo 对象,该对象对应于空值 User . 这似乎是一种违反直觉的方法,如果字段 nametype 没有具体说明。第二个版本更好,因为如果用户为null,它只返回null。另一种方法是强制调用方使用以下命令传递非null参数:

UserInfo myMethod(User user) {
    Objects.requireNonNull(user);
    ...
}

相关问题