在Java中将元素添加到私有Arraylist

在Java中将元素添加到私有Arraylist,java,arraylist,Java,Arraylist,从另一个类向ArrayList添加新元素时遇到问题 此类是ArrayList所在的位置: public class Registry { private ArrayList<Integer> nums = new ArrayList<Integer>(); public void addNum(int num) { this.nums.add(num); } } 它不会将num添加到reg.nums..为公共类的私有对象提供公共访

从另一个类向ArrayList添加新元素时遇到问题

此类是ArrayList所在的位置:

public class Registry {
    private ArrayList<Integer> nums = new ArrayList<Integer>();
    public void addNum(int num) {
        this.nums.add(num);
    }
}
它不会将
num
添加到reg.nums..

为公共类的私有对象提供公共访问器函数满足对象封装的所有要求,我看不出您不能访问此类对象的任何原因

我不确定你是如何检查结果的。因此,考虑举个例子来检查它是否有效

注册表类

public class Registry {
    private ArrayList<Integer> nums = new ArrayList<Integer>();
    public void addNum(int num) {
        this.nums.add(num);
        System.out.println("Size of array: " + this.nums.size());

        for (int n: nums){
            System.out.println("Element of the array: " + n);
        }
    }
} 
输出:

数组大小:1
数组的元素:11
数组大小:2
数组的元素:11

数组元素:22

你怎么知道
nums
private
并且您没有访问器。
Registry
是否有获取Arraylist的方法?是否有错误?您看到了什么错误?我刚刚试过你的例子,效果如预期。我很感激你为了清晰起见试图删减这个例子,但我认为你做得有点过头了。从我们看到的情况来看,这应该是可行的。也许向我们展示一下你是如何访问阵列的,告诉我们什么都没有添加?
public class Registry {
    private ArrayList<Integer> nums = new ArrayList<Integer>();
    public void addNum(int num) {
        this.nums.add(num);
        System.out.println("Size of array: " + this.nums.size());

        for (int n: nums){
            System.out.println("Element of the array: " + n);
        }
    }
} 
public class TestArrayList {

    public static void main(String[] args){


        Registry reg = new Registry();
        reg.addNum(11);
        reg.addNum(22);
    }
}