我想了幾天想弄清楚是否可能,我失敗了,但也許這是可能的(我認爲它應該是可能的)。生成用戶界面組件
比方說,我們有秋千層次+類似的一些UI組件,我們將使用流利的接口Fluent Interfaces:
public abstract class Component {
...
public abstract Component setName(String name);
public abstract String getName();
...
}
public abstract class Panel extends Component {
....
}
public abstract class TitledPanel extends Panel {
....
public abstract TitledPanel setTitle(String title);
public abstract String getTitle();
}
是否有可能使用通用的,能寫這樣的事情?
new TitledPanel().setName("panel").setTitle("Title);
setName應該返回一個TitledPanel而不是Component以便能夠鏈接這些調用。
這僅僅是一個簡單的例子,但這個想法是一旦我有類型T的對象的超類的任何方法流利任何調用返回類型T.
編輯1:我忘了排除部重寫方法並返回一個協變類型:)如果確實可能,我只需要簡單的泛型。
。「首先,我建議只使用一套方法,並且丟棄集」 - 沒有理解這部分。 – 2010-02-04 19:21:16
哪部分?我建議不要使用方法 - 它們是無用的。我也建議不要使用'set'前綴,因爲它是醜陋而且不必要的。 – 2010-02-04 19:48:21
你需要有方法來訪問這些成員。那麼,設置和獲取是有道理的,它也是Sun的命名約定:http://java.sun.com/docs/codeconv/html/CodeConventions.doc8。html 不是說Sun沒有任何違規規則,但這些簡單的規則是有道理的,至少對我而言是這樣。 – 2010-02-04 20:36:22