类型安全是什么:类型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;
}
......
.....
答案 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];
这将导致警告,但由于无法创建参数化数组的实例,因此无法绕过它。