java - Scala 中的集合 <?>

标签 java scala

我刚刚开始学习 Scala,并有一点 Java 经验。我想知道,对于 Java 的 Collection <?> args 之一来说,Scala 的数据类型是什么? ?

最佳答案

首先,Scala 集合形成与 Java 集合不同的库。当然,您可以使用 Scala 中的 Java 集合,但这通常是在与某些 Java API 互操作的代码中完成的,并且纯 Scala 代码通常使用 Scala 集合。

至于你的问题,通配符在Scala中用下划线字符表示,所以是的,Java类java.util.Collection<?>看起来像 java.util.Collection[_]在 Scala 中。

顺便说一句,如果您想要类型界限,即类似 Collection<? extends SomeClass> 的东西,然后使用以下语法实现它们:

Collection<? extends SomeClass>   ->   Collection[_ <: SomeClass]
Comparator<? super SomeClass>     ->   Comparator[_ >: SomeClass]

但是,正如我所说,您最好不要在纯 Scala 代码中使用 Java 集合,因为它们比 Scala 对应项方便得多。 Scala 集合具有更复杂的层次结构,并且没有 Java Collection 的直接等效项, 尽管。您可以阅读this关于 Scala 集合的优秀教程,尤其是 this页面,显示 Scala 集合的层次结构。

关于java - Scala 中的集合 <?>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17120944/

相关文章:

java - 如何用java加密二维码

与类构造函数相关的 java.lang.NoSuchMethodError

java - 如何在 Scala Play 框架内比较表单上的日期/时间?

scala - 函数在 Spark 中返回一个空列表

java - GWT 自动适配复合 Material

java - 在小程序中显示图像并播放音频片段

scala - 为使用 sbt-native-packager 创建的可执行文件设置 JVM 选项的推荐方法是什么?

scala - 带有 Window orderBy 表达式的最后一个函数未按预期工作

java - 一年中的编程作业月份

java - PoolingOptions 和 Cassandra - java