我想让我的带有自定义对象的ArrayList成为最终对象,以便对象在设置后无法更改。
我试图这样声明它:
private final ArrayList<Datapoint> XML = new ArrayList<Datapoint>();
我用以下几行填充 ArrayList:
FileInputStream fileIn = new FileInputStream(f);
ObjectInputStream in = new ObjectInputStream(fileIn);
XML = (ArrayList<Datapoint>) in.readObject();
in.close();
fileIn.close();
这个 for 循环显示对象:
for(int i=0;i<XML.size();i++){
item = XML.get(i);
parsedData = parsedData + "----->\n";
parsedData = parsedData + "Name: " + item.getName() + "\n";
parsedData = parsedData + "stateBased: " + item.getStateBased() + "\n";
parsedData = parsedData + "mainNumber: " + item.getMainNumber() + "\n";
parsedData = parsedData + "dptID: "+ item.getDptID() + "\n";
parsedData = parsedData + "Groupadress: "+ item.getGroupadress() + "\n";
parsedData = parsedData + "priority: "+ item.getPriority() + "\n";
}
xmlOutput.setText(parsedData);
但是 Eclipse 说无法分配最终字段 XMLDetailsActivity.XML
。
有什么问题吗?
最佳答案
final
关键字仅意味着对对象的引用不能更改。但这并不意味着您不能调用对象的方法来更改其状态。
这可以通过使用Collections.unmodifyingList()
来实现列表。
关于java - Android 中的 ArrayList 最终,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12494152/