假設我們有以下的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