我有一个带有方法的java类"JavaClass“:
boolean addAll(java.util.Collection<? extends java.lang.Integer> collection) { ... }我需要创建一个Scala特性MyTrait,它包括了这个方法,而没有实现,比如
def addAll[A<:java.lang.Integer](coll: java.util.Collection[A]) : Boolean所以一个实现
class MyClass extends JavaClass with MyTrait不会是抽象的。但我想不出在特性上与Java签名匹配的任何方法。
等等..。我试图为宝物编写一些高性能的Scala集合兼容包装器,这避免了泛型为原语提供高性能,但对于每种基本类型使用高度一致的接口。我发现,总的来说,特性可以很好地模拟与类型无关的半接口,但我不知道如何表达这个特定的签名--甚至暂时忽略了我使用该特性的类型抽象。
发布于 2014-02-16 00:07:46
java中的Collection<? extends java.lang.Integer>相当于
Collection[T] forSome {type T <: java.lang.Integer}或者在scala中使用占位符语法Collection[_ <: java.lang.Integer]。
https://stackoverflow.com/questions/21804908
复制相似问题