我試圖創建這個類簡化Java類Java class with 2 generic parameters而且主題建議使用此解決方案:2個泛型參數
public class Class1<T extends Class2<E extends Class3>, E extends Class3> {
...
public E someFunction(T param) {
...
}
...
}
這是工作,但在這種情況下,我應該使用2個參數沒有一個:
Class1<Class21<Class31>, Class31> var = ...
在這個解決方案我重複類'氯ass31' 。有這個任務有更簡單的解決方案,使用下面的代碼:
Class1<Class21<Class31>> var = ...
UPDATE1:
你想解決什麼問題?
例如,我有圖像類。 圖像可以是單通道(灰度圖像)和多通道(3通道爲RGB,HSB等或4通道或RGB等+ Alpha通道)。 此外,圖像可以在字節0..255或float(0.0,1.0)中保存值RGB,它是不同類型的圖像。 所以,我想爲這個圖像創建類,並構建它:
MyImage<MyChannelType3<MyColorTypeInt>> img1 = ...
MyImage<MyChannelType3<MyColorTypeFloat>> img2 = ...
MyImage<MyChannelType1<MyColorTypeFloat>> img3 = ...
,並有機會獲得顏色像素爲:
int Red = img1.getPixel(x, y)[0];
float Green = img2.getPixel(x, y)[0];
float Gray = img3.getPixel(x, y);
我覺得是比較有用的比:
MyImage<MyChannelType3<MyColorTypeInt>> img1 = ...
int Red = img1.getPixel(x, y).getChannel(0).getValue();
如果我將第一次返回MyChannelType3,而不是MyColorTypeInt然後值或返回對象和需求它澆鑄於INT,浮子,INT []或浮子[]。
目前尚不清楚你實際詢問的是什麼。你想解決什麼問題?如果您使用博客中建議的表單,我認爲您的聲明應該是'Class1 var'。 –
2012-02-12 02:39:48