谷歌很难找到解决方案,因为我对矢量数据结构并不感兴趣。我对植物学载体很感兴趣。我正在尝试创建一个泛型类来包装Vector的任何数字类型。这是我原来的double
向量:
public class Vector2D {
private double x, y;
Vector2D (double x, double y){
this.x = x;
this.y = y;
}
public static Vector2D random() {
return new Vector2D(Math.random() * 2 - 1, Math.random() * 2 - 1);
}
public double magnitude(){
return Math.sqrt(this.x * this.x + this.y * this.y);
}
public Vector2D add(Vector2D other) {
return new Vector2D(this.x + other.x, this.y + other.y);
}
//etc...
}
然而,我遇到了一些将这个移植到泛型类的dificulites。这就是我到目前为止所做的:
public class Vector2D<T extends Number> {
private T x, y;
Vector2D (T x, T y){
this.x = x;
this.y = y;
}
public static Vector2D random() {
return new Vector2D(Math.random() * 2 - 1, Math.random() * 2 - 1);
}
public T magnitude(){
//this gives an error: cannot cast from double to T
return (T)Math.sqrt(this.x.doubleValue() * this.x.doubleValue() + this.y.doubleValue() * this.y.doubleValue());
}
}
我被magnitude
和random
困住了。我真的很难过。关于如何完成这些方法的任何指导?