我想製作一個保存兩個數值的二維矢量。如通常的載體(即使是不同的數字類型)應該例如可加。 在C++中你可以這樣做:如何在Java中實現兩個二維向量?
template<typename T>
class vector2d{
T x{0};
T y{0};
public:
template<typename U> vector2d& operator+=(const vector2d<U>& vec){
x += vec.x;
y += vec.y;
return *this;
}
...
template<typename U>
friend class vector2d;
};
但是,當我試圖做到這一點在Java中,我遇到了一些問題來。 這是我試圖做的:
class vector2d<T extends Number>{
private T x;
private T y;
public <U extends Number> vector2d add(vector2d<U> vec){
x += vec.x;
y += vec.y;
return this;
}
...
}
但是這不起作用。它會如果我會使用Integer或Float或者其他什麼(因爲Autoboxing)。但是,當你直接使用Number類時,情況似乎並非如此。正如我認爲沒有其他接口可以滿足要求,我有點卡在這裏。 所以我的問題是如果有方法可以使這個工作在Java中。
你的例子有什麼問題?你期望發生什麼,發生了什麼? – byxor
「但這不起作用」 - 沒有足夠的描述你正面臨的問題。你有編譯器錯誤嗎? – Fildor
'x + = vec.x;'因爲'x'是私有的,所以''不會工作 – ArcticLord