Scala中用于<! - 的Java兼容等价物是什么?扩展Foo - >

时间:2014-02-15 23:05:55

标签: scala generics traits

我有一个带有方法的java类“JavaClass”:

boolean addAll(java.util.Collection<? extends java.lang.Integer> collection) { ... }

我需要创建一个包含此方法的Scala trait MyTrait,而不需要实现,例如

def addAll[A<:java.lang.Integer](coll: java.util.Collection[A]) : Boolean

这样一个实现

class MyClass extends JavaClass with MyTrait

不会是抽象的。但我无法找到任何匹配Trait中Java签名的方法。

FWIW ...我正在尝试为Trove编写一些高性能的Scala集合兼容包装器,它避免了泛型为基本提供高性能,但为每种基本类型使用了高度一致的接口。我发现一般来说,traits可以很好地模拟独立于类型的demi-interfaces,但我无法弄清楚如何表达这个特定的签名 - 即使忽略了我正在使用的类型抽象。的特质。

1 个答案:

答案 0 :(得分:3)

java中的

Collection<? extends java.lang.Integer>等同于

Collection[T] forSome {type T <: java.lang.Integer}

或使用占位符语法Collection[_ <: java.lang.Integer] 在斯卡拉