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

Tim*_*ery 1 java reflection

假设我有一个名为的对象thisObject,可以是int,String,Object等,也可以是这类的数组.我希望结果类存储在一个Class名为的变量中thisObjectArrayClass.

这不会编译,但有希望解释我在寻找什么:

switch(thisObject.class) {
    case int.class:
        int[] tempObject;
        thisObjectArrayClass = tempObject.class;
        break;
    case float.class:
        float[] tempObject;
        thisObjectArrayClass = tempObject.class;
        break;
    case int[].class:
        int[][] tempObject;
        thisObjectArrayClass = tempObject.class;
        break;
}
Run Code Online (Sandbox Code Playgroud)

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

K-b*_*llo 7

您正在寻找Array.newInstance:

thisObjectArrayClass = Array.newInstance(thisObject.class, 0).getClass();
Run Code Online (Sandbox Code Playgroud)

这实例化了一个0长度thisObject.classes 数组,并请求class这样的对象.