0

这样写好不好?

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

也有人可以帮助提供良好的空安全最佳实践链接吗?

4

1 回答 1

2

第一个版本看起来有点代码味道:你返回一个UserInfo对应于 null 的对象Username这似乎是一种违反直觉的方法,如果未指定字段和,可能会导致各种验证问题type。第二个版本更好,因为如果用户为空,它只返回空。另一种方法是强制调用者使用以下方法传递非空参数:

UserInfo myMethod(User user) {
    Objects.requireNonNull(user);
    ...
}
于 2021-07-07T06:14:53.507 回答