比方说,我有称为thisObject
的对象,其可以是一个整型,字符串,对象等,或这些类的数组。我希望将得到的类存储在名为thisObjectArrayClass
的Class
变量中。如何获得类数组的.class值?
这不会编译,但将有望解释我在寻找:
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;
}
这里的问题是,它依赖于一个开关/ case语句,这显然是不可接受的。我尝试使用反射来做到这一点失败了,但我是Java新手,所以也许我做错了什么。这怎么能实现?
呸......这正是我试过,但我使用'.class'而不是'.getClass()'。我很亲密。 :( – TimFoolery
@Michael:'.class'是对象的_static class_,在本例中是'java.lang.Object'。'getClass()'是对象的_dynamic class_。 –
使用'thisObject.class'意味着那'thisObject'是类的文字名称,在这种情况下,这个问题的答案也只是使用'的thisObject []。class'。我怀疑'thisObject'实际上是一个引用变量,在这种情况下获得类它所指向的对象,他需要做的'thisObject.getClass()' – user102008