类型安全:类型数组的表达式需要未经检查的转换以符合employee <string,integer> []的含义

时间:2015-07-09 07:20:30

标签: java

类型安全是什么:类型employee []的表达式需要未经检查的转换以符合employee []意味着 ?? 以及如何摆脱它。

我在以下this.e = new employee[length];行中找到了它:

class employee<U, T> {

    public U name;

    public T id;

    public employee(U name, T id) {
        this.name = name;
        this.id = id;
    }

 // setter - gettter
 ....
}



class manageEmployee {

    private employee<String, Integer> e[];

    public manageEmployee(employee<String, Integer> e[], int length) {

      this.e = new employee[length];
        this.e = e;

    }

  ......
   .....

1 个答案:

答案 0 :(得分:2)

您正在将一个原始employee类型的数组 - new employee[length] - 分配给参数化employee<String, Integer>类型数组的变量。这需要演员。

但是,因为在以下行(this.e = e;)中您将构造函数的数组参数分配给类的e成员,所以根本没有指向this.e = new employee[length];行,因为它创建了一个可以立即进行垃圾回收的数组实例。

编辑:

在main方法中创建数组的实例:

employee<String,Integer> e[] = (employee<String,Integer>[]) new employee[5];

这将导致警告,但由于无法创建参数化数组的实例,因此无法绕过它。