首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scala中的Java兼容等价于什么?扩展Foo>

Scala中的Java兼容等价于什么?扩展Foo>
EN

Stack Overflow用户
提问于 2014-02-15 23:05:55
回答 1查看 287关注 0票数 0

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

代码语言:javascript
运行
复制
boolean addAll(java.util.Collection<? extends java.lang.Integer> collection) { ... }

我需要创建一个Scala特性MyTrait,它包括了这个方法,而没有实现,比如

代码语言:javascript
运行
复制
def addAll[A<:java.lang.Integer](coll: java.util.Collection[A]) : Boolean

所以一个实现

代码语言:javascript
运行
复制
class MyClass extends JavaClass with MyTrait

不会是抽象的。但我想不出在特性上与Java签名匹配的任何方法。

等等..。我试图为宝物编写一些高性能的Scala集合兼容包装器,这避免了泛型为原语提供高性能,但对于每种基本类型使用高度一致的接口。我发现,总的来说,特性可以很好地模拟与类型无关的半接口,但我不知道如何表达这个特定的签名--甚至暂时忽略了我使用该特性的类型抽象。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-16 00:07:46

java中的Collection<? extends java.lang.Integer>相当于

代码语言:javascript
运行
复制
Collection[T] forSome {type T <: java.lang.Integer}

或者在scala中使用占位符语法Collection[_ <: java.lang.Integer]

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21804908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档