在我的android项目中,我想写一个函数,它应该返回类型的数组类作为,
Class getClassArrayType(String strClassName)
{
//some code
return class;
}
如果我将"Task"作为类名传递给上面的函数,它应该返回Task[].class
。
我该怎么做?
我读过关于反射的文章,但它让我很困惑!
我不知道这是不是最优的,但我是这样做的:
Array.newInstance(Class.forName("strClassName"), 0).getClass()
此外,strClassName必须是所需类的完全限定名。
不确定这是最好的方法,但它是有效的,至少对于非数组类型
String className = "java.lang.String";
String arrayClassName = "[L" + className + ";";
Class<?> arrayClass = Class.forName(arrayClassName);
可以是
public class Test {
public static void main(String[] args) throws ClassNotFoundException {
System.out.println(getClassArrayType(Test.class.getName()));
}
static Class getClassArrayType(String strClassName)
throws ClassNotFoundException {
Class cls = Class.forName(strClassName);
Object[] arr = (Object[]) Array.newInstance(cls, 10);
return arr.getClass();
}
}