如何获取类数组的.class值?

时间:2012-06-09 05:35:44

标签: java reflection

假设我有一个名为thisObject的对象,它可能是int,String,Object等,或者是这类的数组。我希望生成的类存储在名为Class的{​​{1}}变量中。

这不会编译,但希望能够解释我在寻找的内容:

thisObjectArrayClass

这个问题是它依赖于switch / case语句,这显然是不可接受的。我使用反射尝试这样做的尝试失败了,但我是Java的新手,所以也许我做错了。如何实现这一目标?

4 个答案:

答案 0 :(得分:7)

您正在寻找Array.newInstance

thisObjectArrayClass = Array.newInstance(thisObject.class, 0).getClass();

实例化thisObject.class es的 0-length 数组,并请求此类对象的class

答案 1 :(得分:1)

Object有一个getClass()方法。

public Class getClass(Object thisObject) {  
    Class thisObjectArrayClass = obj.getClass();  
    System.out.println("The type of the object is: " + thisObjectArrayClass.getName());  
    return thisObjectArrayClass;
} 

答案 2 :(得分:-1)

您只能打开整数(或Java7中的字符串)。使用if / else序列或7中的开关。无论哪种方式,您可能正在寻找的方法是thisObject.getClass()

switch(obj.getClass().getName()) {
    case "java.lang.String" :
        System.out.println("Found String");
        break;
    default:
        System.out.println("Found:" + obj.getClass().getName());
}

答案 3 :(得分:-2)

int array[] = new int[7];
array.getClass();