如何防止在类中修改私有字段?

问题:

想象一下,我有这个课程:

public class Test
{
  private String[] arr = new String[]{"1","2"};    

  public String[] getArr() 
  {
    return arr;
  }
}

现在,我有另一个类使用上面的类:

Test test = new Test();
test.getArr()[0] ="some value!"; //!!!

所以这是问题:我已经从外面访问了一个类的私人领域!
我该如何防止这种情况?我的意思是我如何使这个数组不可变?这是否意味着每一个getter方法都可以让您的方式进入私人领域? (我不想要任何图书馆,如番石榴,我只需要知道正确的方法来做到这一点)。

回答:

您必须返回阵列的复制

public String[] getArr() {
  return arr == null ? null : Arrays.copyOf(arr, arr.length);
}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How do I prevent the modification of a private field in a class?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

8 + 2 =