尝试创建:
class Widget
{
public Widget(Object type)
{
Object typeCheck = type.getClass();
(typeCheck class)[] = new (typeCheck class)[0];
{
}
获取typeCheck的类型并使用它来创建数组是麻烦的。有没有一种实际的逻辑方式来做到这一点?或者我应该只解析getClass()的结果并以这种方式执行吗?
答案 0 :(得分:0)
Theres类中的创建者,它接受Class作为参数并返回一个数组的Object。
Object typeCheck = type.getClass();
Object[] = (Object[]) new Array.newInstance(typeCheck, 0);
但你不能转换为从getClass()捕获的generified类型,你必须使用Object。
所以你有三个选择。
1)如果您了解所有方法,请使用正确的类型
2)完全使用反射
3)将Generics与接口一起使用,这也将为您提供编译时方法:
class Widget<T extends Component> {
public Widget(T type) {
T[] ts = new T[0];
}
}