如何从Java的另一个类中获取列表值
如何使用Java访问另一个类中的一个类的列表。 通过使用以下代码,我得到一个空列表。如何从Java的另一个类中获取列表值
我的代码:
public class DataRead {
public static List<String> list = new ArrayList<String>();
public void readData() {
list.add("abc");
list.add("xyz");
}
}
public class GetListData {
public static void main(String[] args) {
List<String> getList = DataRead.list;
System.out.println(getList); //getting null
}
}
我编辑的代码:
public class GetListData {
public static void main(String[] args){
DataRead dataRead = new DataRead();
dataRead.readData(); //Add elements to list
List<String> myList = DataRead.list;
System.out.println(myList.get(0));
}
}
编辑代码后仍然得到空集。
问题是,列表仍然是空的。从表中读,你需要从中获得特定的元素出来:
list.get(x); //where x is an int value
列表中没有添加元素的原因是因为添加到列表中的语句驻留在readData
方法。首先,您需要调用的方法:
DataRead dataRead = new DataRead();
dataRead.readData();
所以读的元素,你可以用这个去:
public static void main(String[] args){
DataRead dataRead = new DataRead();
dataRead.readData(); //Add elements to list
List<String> myList = DataRead.list;
System.out.println(myList.get(0)); //getting "abc"
}
如果并不意味着列表共享,但作为个体DATAREAD的属性
class DataRead
{
//Your other attributes..
private List<String> list;
public DataRead(){
list = new ArrayList<String>();
}
public <ArrayList> getList(){
return list;
}
public void addToList(String s){
list.add(s);
}
}
看来你确实需要调用'readData'因为没有显示 – Ascalonian
@Ascalonian天哪构造,我忽略了它。我以为是一个构造者...他使用的命名......格兹。感谢提醒。 – user3437460
您需要实际调用readData()
方法首先,填补你的List
,如:对象,我会做
public static void main(String[] args) {
new DataRead().readData();
List<String> getList = DataRead.list;
System.out.println(getList);
}
OP的编辑后:
我怀疑你得到一个空的结果 - check it out on ideone。
将您的代码更改为此。
public class DataRead {
public List<String> list;
public void DataRead() {
list = new ArrayList<String>();
list.add("abc");
list.add("xyz");
}
}
并使用它如下。
public class GetListData {
public static void main(String[] args) {
DataRead d = new DataRead();
List<String> getList = d.list;
System.out.println(getList); //getting null
}
}
最好的方法是使用Getters和setter,并且不要使变量成为静态的,除非和直到它需要为止。
您可能想要创建一个'DataRead'构造函数,对吧?目前,您创建了一个'void'方法,而不是... – radoh
该列表为空,因为里面没有内容。 readData方法尚未被调用。 – NiallMitch14
@NiallMitch14'null'和空不是一回事。 –
我得到空list.I'm试图获取“GetListData”类中的列表值。请编辑代码 – dev777