在我的android项目中,我想编写一个函数,该函数应该返回类的数组类型,
Class getClassArrayType(String strClassName)
{
//some code
return class;
}
如果我将“任务”作为类名传递给上面的函数,它应该返回Task[].class
。
我该怎么做?
我已经阅读了有关反思但却让我很困惑的事情!
请帮助我。
答案 0 :(得分:2)
我不知道它是否是最佳的,但我是按照以下方式进行的:
Array.newInstance(Class.forName("strClassName"), 0).getClass()
此外, strClassName 必须是所需类的完全限定名称。
答案 1 :(得分:1)
不确定这是最好的方法,但它起作用,至少对于非数组类型
String className = "java.lang.String";
String arrayClassName = "[L" + className + ";";
Class<?> arrayClass = Class.forName(arrayClassName);
答案 2 :(得分:0)
一个选项可能是
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();
}
}