我有一个方法动态返回一个动态返回一个ArrayList
ArrayList<Player>
这里奋斗是我所:
幻想类
public class Fantasy {
Squad team;
ArrayList<Player> substitutes = team.getList(substitutes);
}
小队类
public class Squad {
ArrayList<Player> substitutes;
// Some code adding stuff into the ArrayList
public ArrayList<Player> getList(String list) {
return ArrayList<Player> list; << PROBLEM
}
}
我想有一个方法getList()
,通过它我可以通过一个ArrayList,如果具有相同名称的ArratList存在,这将检查的名称,如果是,将其返回作为一个ArrayList。
问题是,我不知道如何检查是否有一个ArrayList与我传递的字符串list
相同。
可能的解决方案:
Map<String, ArrayList<Player>> arrayLists = new HashMap<String, ArrayList<Player>>(){{
put("goalKeepers", goalKeepers);
put("defenders", defenders);
put("midFielders", midFielders);
put("strikers", strikers);
put("substitutes", substitutes);
}};
和
public ArrayList<Player> getList(String list) {
return arrayLists.get(list);
}
但是,当我打电话:
ArrayList test = getList("substitute");
或每当我使用的GetList();我得到以下错误:
Cannot make a static reference to the non-static method getList(String) from the type Squad
我不完全理解你的问题,但是让'getSubstitutes()'方法返回列表:'return substitutes;'是否更有意义? – Vulcan
“Squad”类中只有一个List,因此只有一个可能的列表返回。此外,你的陈述“检查这种方法是否存在”与你的其他问题没有任何关系。也许你应该在Java应用程序的上下文中查找术语“方法”的含义。一般而言,您的问题与目前所述无关。 –
列表从哪里来?你是否试图通过名称将它从任何对象成员中拉出来?这很少是一个好主意,为什么不使用'Map>'如果你需要将字符串配对玩家集合 –