![]() |
1
4
Java没有高阶多态性(也就是更高的种类),所以在类型系统中这是不可能的。许多Java程序员都求助于XML和/或反射(即转义类型系统)来解决这一缺陷。 Scala可以处理这个问题,你所描述的叫做协变函子。这个相当基本的数据类型(以及更多)已经在Scalaz库中实现,并包括java.util文件.*. 此外,还有更多不是集合的协变函子和更多不是协变函子。
|
![]() |
2
6
工作完成了。
)我不喜欢
或者你可以使用一个工厂:
如果不是因为
|
![]() |
3
4
我不认为你能做得比汤姆在报告中建议的更好 his answer . Java不支持更高种类的类型—这个特性可以帮助您抽象集合类型,从而避免为每个集合类型重复相同的代码。 Scala支持这个特性,并且在它的标准库中被广泛使用。 This paper 作者adriaanmoors讨论了Scala如何借助更高级的类型避免这种代码重复。 上述报纸的两张截图:
|
![]() |
4
2
我不相信Java的类型系统足够复杂来解决这个问题,但Scala的是。在2.8版本的collections库中,他们构建了一个系统,可以根据您使用的集合自动创建适当类型的集合。所以,如果你打电话
要了解更多信息,请查看
|
![]() |
5
1
|