当我运行此代码时,因为将d隐式转换为double,所以出现了ClassCastException错误。然而,如果我将对d的引用更改为Object[],则它不能成为set函数的参数。如果我将set函数更改为接受Object[],那么一切都正常工作,但是如果有人在不是N类型的对象上调用set,则该类将在运行时失败。
我需要一个解决方案,可以“get()”旧数组(或其克隆),并且可以向新数组中“set()”数据。
我需要一个解决方案,可以“get()”旧数组(或其克隆),并且可以向新数组中“set()”数据。
public class Foo<N> {
public static void main(String[] args) {
Foo<Double> foo = new Foo<Double>();
Double[] d = foo.get();
// do stuff to d ...
foo.set(d);
}
N[] data;
public Foo() {
data = (N[]) new Object[2];
}
public N[] get() {
return (N[]) data;
}
public void set(N[] data) {
this.data = data;
}
}