gpt4 book ai didi

java - 在java中限制对象构造中的null

转载 作者:行者123 更新时间:2023-11-29 04:42:36 25 4
gpt4 key购买 nike

假设一个类(比如类A)的构造函数有一个抛出异常的构造函数是任何参数(比如类A有两个成员变量String fieldOne和String fieldTwo)为null。

这会导致任何问题吗,因为我看到 hashCode() 实现中也使用了空参数:

这里是 hashCode() 方法:

public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((fieldOne== null) ? 0 : fieldOne.hashCode());
result = prime * result
+ ((fieldTwo== null) ? 0 : fieldTwo.hashCode());
return result;
}

注意:A类是不可变的,A类是final,成员变量没有setter。成员变量也是 final

最佳答案

那很好:三元条件中会有少量冗余,仅此而已。

建议您保留对 null 的检查(因为其他函数可能会将 fieldOnefieldTwo 分配给其他对象,包括null),除非您将字段标记为 final

关于java - 在java中限制对象构造中的null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38583737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com