从ArrayList获取特定的类

时间:2012-06-14 04:07:20

标签: java arraylist

我正在开发一个项目,我需要在其中向ArrayList添加大量对象,然后在其中调用特定的函数。我有这个部分,但在我的程序中,我需要从ArrayList访问特定的实例,只有我正在寻找的类的参数。 例如:

public class Manager {
    public static ArrayList<O> loadedHacks = new ArrayList<O>();
    public void initOs(){
        loadedHacks.add(new O());
    }
}

public class O {
    public boolean enabled = false;
    public void onEnable(){}
}

public class A extends O{
}

后来我想做这样的事情:

if(Helper.get(A.class).enabled){}

2 个答案:

答案 0 :(得分:2)

你的问题并不完全清楚你要解决的实际问题是什么,但如果我理解正确,你要做的就是说:“对象X可能属于某个子类如果它是B的子类,那么我想调用B.method(),它没有在A“上定义。

在这种情况下,您可以执行以下操作:

if (object instanceof SpecificSubclass) {
  SpecificSubclass specificObject = (SpecificSubclass) object;
  specificObject.specificMethod();
}
您评论中的

编辑:,您所寻找的功能似乎略有不同。如果您有一个Class作为参数,那么要查看某个特定对象是否是该类的实例,请使用Class.isAssignableFrom()方法。

答案 1 :(得分:1)

如果我理解正确,你将不得不迭代ArrayList并将你作为Class对象的param与数组中getClass()的返回类型进行比较,以获取对象并返回它。由于getClass()方法返回对象的Class类型,而不是引用。