如何在Array List模型类中访问

时间:2018-04-09 07:40:18

标签: java

这是数组列表模型类。是对还是错?我无法从另一个类

访问此类
public class CartOrder {
    List<CartOrder.Data> data;

    public List<Data> getData() {
        return data;
    }

    public void setData(List<Data> data) {
        this.data = data;
    }

    class Data {
        String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
}

3 个答案:

答案 0 :(得分:1)

如果您已经正确阅读了例外,那么您也可以阅读问题的解决方案。您需要首先实例化datatables对象,然后您可以调用CartOrder,如下所示

s.new Data()

修改现有的课程:

public static void main(String[] args) {
    CartOrder s = new CartOrder();
    Data d = s.new Data();
    d.setName("Test");
    s.addData(d);
    System.out.println(s);
}

答案 1 :(得分:0)

similar question here

但是,您的代码是准确的。如果您将您的成员属性设为私有Data::name,那么除工厂类(class Data)之外的任何其他内容都无法访问它。对于您的其他函数及其成员也是如此。

答案 2 :(得分:0)

我假设您想要使用它:

CartOrder.Data data = new CartOrder.Data();

为了使它工作,你应该让你的内部类静态,所以你的代码将成为

public class CartOrder {
    List<CartOrder.Data> data;

    public List<Data> getData() {
        return data;
    }

    public void setData(List<Data> data) {
        this.data = data;
    }

    static class Data {
        String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
}

之后您可以使用它:

public void someMethodInSomeOtherClass() {
    // ...
    CartOrder cartOrder = new CartOrder();

    CartOrder.Data someData = new CartOrder.Data();
    someData.setName("Luke");

    CartOrder.Data moreData = new CartOrder.Data();
    moreData.setName("Han");

    cartOrder.setData(Arrays.asList(someData, moreData));
    // ...
}