在我的 Java 应用程序中,我有一些像这样的复制构造函数
public MyClass(MyClass src) {
this.field1 = src.field1;
this.field2 = src.field2;
this.field3 = src.field3;
...
}
现在 Netbeans 6.9 对此发出警告,我想知道这段代码有什么问题吗?
我的担忧:
- 使用 getter 可能会引入不需要的副作用。新对象可能不再被视为原始对象的副本。
- 如果建议使用 getter,那么如果对新实例也使用 setter 不是更一致吗?
编辑:实际警告是“访问另一个对象的私有(private)字段”,Netbeans 提供的唯一可用操作是添加一个@SuppressWarnings("AccessingNonPublicFieldOfAnotherObject")
我的代码实际上和给定的例子一样简单。
最佳答案
我看代码没有问题。事实上,我和你一样担心,并且宁愿不使用 setter/getter 。
您收到的警告到底是什么?也许这与您没有向我们展示的内容有关?
更新:似乎 Netbeans 确实在提示这一点。我认为,这是一个与 IDE 一起发布的相当有争议的警告。
关于java - 在复制构造函数中访问另一个对象的私有(private)字段——真的有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2431587/