基本上我想這樣做:你可以同時要求多種類型嗎?
public interface A {
void a();
}
public interface B {
void b();
}
public class SomeClass {
public SomeClass(<A&B> e) { // Note the type here
e.a();
e.b();
}
}
我所做的註釋行顯然是違法的。我知道我可以只需要傳遞的對象來實現接口A或接口B,但是有兩種方法可以實現這兩種接口嗎?
我想有一些解決方法(比如要求參數是A類型,然後檢查它是否也是B的一個實例),但這樣我就不能從編譯器獲得幫助。你知道有什麼辦法可以做到嗎?或者,也許更聰明的解決方法...
這感覺很混亂,因爲你仍然需要定義一個實現A和B的類型T.爲什麼不只是讓參數類型?如果許多對象實現A和B,爲什麼不製作一個接口C:A,B? – 2009-01-13 14:00:54