Java:从param获取类型并创建类型数组

时间:2017-11-14 17:34:51

标签: java arrays

尝试创建:

class Widget
{
  public Widget(Object type)
  {
    Object typeCheck = type.getClass();
    (typeCheck class)[] = new (typeCheck class)[0];
  {
}

获取typeCheck的类型并使用它来创建数组是麻烦的。有没有一种实际的逻辑方式来做到这一点?或者我应该只解析getClass()的结果并以这种方式执行吗?

1 个答案:

答案 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];
    }
}