我敢肯定,我可以用Java泛型來解決這個問題,所以我想問一下......假設我有幾個類,每個類都實現了一個通用接口,還有一個方法在通用接口getData
,我想通用。我遇到的問題是每個類都返回一個不同的對象類型,所以理想情況下我希望它們是通用的,然後在調用getData
的實現類中,將它們轉換回它們的原始類型。如果我想投射到Object
並回到特定的類型,我可以看到這是如何工作的,但是我可以用泛型實現相同的最終結果嗎?使用泛型更好的方式來解決這個問題
下面是一些僞代碼來勾勒問題:
public ClassA implements interface x {
private CustomObjectA customObjectA;
private Map<DateTime, Map<String, CustomObjectA>> dataMap;
...
public Map<DateTime, Map<String, CustomObjectA>> getData() {
return this.dataMap;
}
}
public ClassB implements interface x {
private CustomObjectA customObjectB;
private Map<DateTime, Map<String, CustomObjectB>> dataMap;
...
public Map<DateTime, Map<String, CustomObjectB>> getData() {
return this.dataMap;
}
}
public interface x {
public Map<DateTime, Map<String, genericObject>> getData();
}
public ClassC {
public testGeneric(x objX) {
CustomObjectA cOA = objX.getData();
CustomObjectB cOB = objX.getData();
}
}
是否與CustomObjectB和CustomObjectA完全無關? – 2011-12-15 20:35:37
是的,他們有完全不同的成員 – Hoofamon 2011-12-15 20:37:23