假设我们有以下的Java接口:如何在Scala中扩展包含泛型方法的Java接口?
// Java
public interface Foo {
<T> T bar(Class<T> c);
}
我应该如何在斯卡拉其扩展?写
// Scala
class FooString extends Foo {
override def bar(c: Class[String]): String = "hello, world";
}
将导致编译抛出“类FooString需要是抽象的,因为在类型的性状的Foo [T ]
没有定义(类[T])T法吧”。
在此先感谢!
更新: 丑陋的真相是:我错误地理解了Java中的泛型。
在任何情况下,我的困境的解决方案都显示在Nicolas和Walter的答案中,尽管我更喜欢Walter的答案,因为它不那么冗长。
你终于明白了!很高兴你已经理解你对泛型的错误。 不客气。 – Nicolas 2009-09-30 15:01:56