【发布时间】:2019-03-26 10:54:46
【问题描述】:
我有一个 ArrayList,我有一个不同对象的集合
然后我有一个迭代器
for(Iterator i = results.iterator(); i.hasNext();) {
Object row = i.next();
问题是我有多个使用它的类。例如 User.class。我如何确保我得到了那个对象
User u = (User) row?
【问题讨论】:
-
您不使用原始的
ArrayList或原始的Iterator。您声明您的列表包含特定类型,例如ArrayList<User>。除非有令人信服的理由,否则不要对多种类型使用相同的列表。 -
您可以但不应该使用
instanceof运算符 -
那是糟糕的设计。您的 List 应该包含一种类型或相同类型的子类,而不是任意对象。
-
如果您有代码,请更改设计。
-
@S.Iqbal 不要尝试扩展损坏的代码,修复它!