[英]How to access in Array List model class
這是數組列表模型類。 是對還是錯? 我無法從另一個班級訪問該班級
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;
}
}
}
如果您已正確閱讀了該異常,那么您還將已閱讀了解決問題的方法。 您需要首先實例化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);
}
修改您現有的課程:
public class CartOrder {
List<Data> data;
public CartOrder () {
data = new ArrayList<Data>();
}
public List<Data> getData() {
return data;
}
public void setData(List<Data> data) {
this.data = data;
}
public void addData(Data data) {
this.data.add(data);
}
class Data {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
但是是的,您的代碼是准確的。 如果將成員屬性設為私有Data::name
則除工廠類( class Data
)外,其他任何屬性都無法訪問它。 您的其他函數及其成員也是如此。
我假設您想像這樣使用它:
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));
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.