我正在尝试重用我编写的 Java 泛型集合,看起来很像这样:
public class Blah<T>
implements List<T>
{
...
public void test(T[] array) {
...
}
...
}
当从使用上述内容的 Scala 泛型集合中使用时,我收到编译错误,我注意到 Blah 类方法需要的不是 T,而是带有 java.lang.Object 的 T!
Object MyStaticObject {
def test[T](array: Array[T]) = {
val x = new Blah[T]();
x.test(array) // <- error here: Overloaded method with alternatives test[T with java.lang.Object] ... cannot be applied
}
有没有办法避免这种情况而无需在 Scala 中重写 Blah 类?(这行得通,但我有太多这样的 Java 代码,而不是移植整个东西......)
也许某种隐含的定义可以起到拯救作用?谢谢!