![]() |
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
|
![]() |
Sudhanva c · 如何提高编码技能?[已关闭] 7 年前 |
![]() |
hoffm · 为什么Ruby找不到调用方类中定义的常量? 7 年前 |
![]() |
Thamme Gowda · “lambda”关键字的较短替代项? 7 年前 |
![]() |
AlphaModder · 有没有带有“不寻常”访问修饰符的编程语言? 9 年前 |
|
lucasasecas · 有可能静态地使用动态语言吗? 10 年前 |
|
Eugenio Laghi · 仅由括号、加号和感叹号组成的语言 10 年前 |
![]() |
dallin · 数组中的逗号运算符是否有名称? 11 年前 |