【发布时间】:2019-09-16 16:35:14
【问题描述】:
import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.Date;
public class Test {
public static void main(String[] args) {
System.out.println(new Test().getClassOfArrayOfSerializable(String.class));
System.out.println(new Test().getClassOfArrayOfSerializable(Date.class));
}
@SuppressWarnings("unchecked")
private Class<? extends Serializable> getClassOfArrayOfSerializable(final Class<? extends Serializable> subtypeClass) {
return (Class<Serializable>) Array.newInstance(subtypeClass, 0).getClass();
}
}
上面的 getClassOfArrayOfSerializable() 方法返回作为参数传递的类型的对象数组的类。
如您所见,我必须创建数组的一个实例,尽管我实际上只需要它的类。
有没有办法避免数组的实例化?
【问题讨论】:
-
你可以用
"[L"和";"包围类名并调用Class.forName,但是创建数组实例也不错