如何在没有实例化对象的Java中建立类类型?

时间:2011-06-05 21:35:05

标签: java class

假设我在Java中有一个类值数组,我想遍历数组以找到Double所在的位置。 我尝试了以下方法:

public class ClassTypes {

    public static void main(String[] args) {
        Class []types = {String.class, Double.class};
        for (int i = 0 ; i < types.length; i++)
        {
                if (types[i].isInstance(Double.class)){
                    System.out.println("DOUBLE"); //never printed 
                }
        }
    }}

我没有对象的实例,所以我不能使用instanceof,我想避免在类对象上使用getName来执行比较。 谁能建议我怎么做?

2 个答案:

答案 0 :(得分:3)

types[i].equals(Double.class)

答案 1 :(得分:1)

您实际需要的是Double.class.isAssignableFrom(types[i]),而不是equals而不是==(它们与Class相同)。对于像Double和String这样的最终类,当然没关系。

如果您已尝试检查该类是否为java.lang.Number(或任何接口/抽象类),则 == 方法将失败。