我有一個方法動態返回一個動態返回一個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>'如果你需要將字符串配對玩家集合 –