【问题标题】:How to I get rid of an anonymous object in an arrayList?如何摆脱 arrayList 中的匿名对象?
【发布时间】:2015-12-06 22:28:21
【问题描述】:
ArrayList<Object> ingred = new ArrayList <Object>();
ingred.add(new Cup()); // From class Cup
ingred.remove(Cup); // Cup cannot be resolved to a variable               

不能使用任何一种删除方法。请帮忙!!

【问题讨论】:

  • 您可以将对象分配给变量。您可以将存储对象的索引分配给变量。您可以遍历列表并找到Cup 的实例,然后将其删除。
  • 在 java 8 ingred.removeIf(Cup.class::isInstance); 中是可能的(但这会删除 all Cup 对象)
  • @khelwood 所以唯一的方法是存储每个对象的索引?
  • @zapl 是的,我也遇到过,但问题是我需要单独删除它们。我最终使用循环多次存储同一个对象并使用 remove 摆脱一审
  • @JMarcusCham 取决于您要做什么。您的问题中没有足够的上下文来说明您的选择是什么。

标签: java object arraylist


【解决方案1】:

如何让它不那么“匿名”?就像存储对它的引用一样:

Cup x = new Cup(); 
ingred.add(x); 
ingred.remove(x);

【讨论】:

  • 感谢您的回复!我遇到的问题是我不想为存储在列表中的每个对象创建一个新引用,但似乎多次存储相同的引用对象是可行的,我可以使用 ingred.remove(0) 将其删除,即第一个元素的位置。
  • 另外,最好有一个包含不同对象类型的列表还是为每种类型单独列出一个列表?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多