写通用物理矢量类

时间:2015-10-07 00:27:02

标签: java generics physics

谷歌很难找到解决方案,因为我对矢量数据结构并不感兴趣。我对植物学载体很感兴趣。我正在尝试创建一个泛型类来包装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());
    }
}

我被magnituderandom困住了。我真的很难过。关于如何完成这些方法的任何指导?

0 个答案:

没有答案