给定一个通用接口,如下面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