【发布时间】:2014-08-24 00:13:00
【问题描述】:
所以我得到了这个超级令人兴奋的 Java 类:
import scala.collection.immutable.Stream;
public class EmptyStreamFactory {
public static Stream<String> createEmptyStringStream() {
return Stream.<String>empty();
}
}
使用类路径上的 2.10.4 scala-library.jar 编译就好了(或 2.9.2,值得一提)。现在我用 2.11 试试:
EmptyStreamFactory.java:5: error: incompatible types
return Stream.<String>empty();
^
required: Stream<String>
found: GenTraversable
1 error
这有什么意义呢?乍一看,可能与远程相关的唯一区别是 Stream.Empty 在 2.11 中不再扩展 Serializable,但我不明白这会如何导致这个问题。 List 等也会发生同样的事情。
有一个简单的解决方法 - 您可以转换为适当的类型 - 但我想了解这里发生了什么。
(我使用的是 Oracle 的 JDK,版本 1.7.0_67。)
【问题讨论】:
-
Stream.Empty仍然扩展Serializable,因为它扩展了Stream。Empty上删除的Serializable是多余的,所以这不是问题的根源。
标签: java scala scala-2.11