![]() |
1
92
很容易忘记一个特质可以扩展一个类。如果使用trait,可以推迟调用哪个构造函数的决定,如下所示:
trait本身可能没有构造函数参数,但是您可以通过使用抽象成员来解决这个问题。 |
![]() |
2
5
编辑 这是来自scala邮件列表上的一个问题,我认为这个问题在这里是重复的。我的答案是提供三种不同的构造函数(即复制Java设计),而不是扩展类
状态
|
![]() |
3
2
我会选择最通用的一个(在本例中是字符串),如果它满足其他条件,我会自己进行内部转换。 虽然我承认这不是最好的解决办法,但我觉得这有点不对劲-( |
![]() |
4
2
在Java中编写一个子类,实现一个构造函数,该构造函数接受其他各种构造函数将接受的所有输入,并根据输入的存在或不存在(通过使用“null”或某种sentinel值)调用其超类的适当构造函数,然后在Scala中对Java类进行子类化,并将sentinel值指定为默认参数。 |