java - Android 中的 ArrayList 最终

标签 java android arraylist final

我想让我的带有自定义对象的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/

相关文章:

java - Vertx 中有应用程序变量吗?

android - 操作栏显示在其选项卡下方

android - 如何将微调器中的第一个值(默认值)设置为空

android - Android 中库类中的 StartActivityForResult

java - org.springframework.orm.hibernate3.HibernateSystemException : Unknown entity: java. util.ArrayList

java - java中的数组列表

java - 添加svn :ignore property on files that already are under control

java - 我的 gwt 应用程序有没有 ID、名称的组件。有什么方法可以将 id/name (运行时)设置为组件,以便我使用它们在 selenium 中进行测试?

java - 为什么 RecyclerView.OnScrollListener() 只影响 recyclerview 的最后一项

java - new Vector<Object Type> (int ) 之后的 (int ) 代表什么?