我刚刚开始学习 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/