我正在尝试使用TinyDB的putListObject
功能将对象列表保存到“共享首选项” ,但是出现Wrong 2nd argument type
错误。我可以正常使用该putObject
功能,该错误仅在使用该putListObject
功能时出现。
玩家等级:
public class Player {
private String name = "";
private int score = 0;
public Player(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
putListObject函数:
public void putListObject(String key, ArrayList<Object> objArray){
checkForNullKey(key);
Gson gson = new Gson();
ArrayList<String> objStrings = new ArrayList<String>();
for(Object obj : objArray){
objStrings.add(gson.toJson(obj));
}
putListString(key, objStrings);
}
我如何使用该功能:
ArrayList<Player> playerList = new ArrayList<Player>();
TinyDB tinydb = new TinyDB(this);
tinydb.putListObject("players", playerList);
我得到的错误:
TinyDB中的putListObject(String java.util.ArrayList <java.lang.Object>)无法应用于(String java.util.ArrayList <com.example.package.Player>)
帮助将不胜感激!
尽管of的任何实例Player
都是Object
,但ArrayList
PlayersArrayList
的对象与Objects的对象不同。将方法签名更改为:
putListObject(String key, ArrayList<Player> objArray)
和循环到:
for(Player player : objArray){
objStrings.add(gson.toJson(player));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句