給定一個通用接口,如下面Scala中的泛型:實現一個接口/特徵兩次?
interface I<T> {
void m(T t);
}
我可以在C#創建實現予兩次(或更多個)與T,例如提供不同類型的一個類
class C : I<int>, I<String> {
public void m(int i) { }
public void m(String s) { }
}
這不能在Java中完成,因爲擦除了泛型類型信息,但是在Scala中可以實現類似的功能嗎?
您能在Scala代碼中描述您想要做什麼嗎?這裏的很多人都不熟悉C#。 – Jus12
那麼,我並不是那麼熟悉Scala(試圖學習:))。但是,只要知道此設置中的「C類」之後的「:」表示Java中的「實現」,上述代碼對於任何瞭解Java的人都應該很容易理解。我在Scala中嘗試的是讓我成爲一個特性(只需用「trait」替換「interface」),然後將C定義爲「class C用I {...」擴展I,但這不起作用。 –
Eyvind
在Scala中,泛型類型包含在'[]'中,所以你可以這樣做'I [Int]'和'I [String]'。你有沒有在聲明中使用'ClassManifest'? – Jus12