Scala中辅助构造函数中枚举的默认值
我有一个类UserContact,它在构造函数中有一个枚举Scala中辅助构造函数中枚举的默认值,scala,enums,Scala,Enums,我有一个类UserContact,它在构造函数中有一个枚举 class UserContact( val uuid: Int , var phone: String , var sms: Boolean , var pushNotification: Boolean , var deviceType: UserDeviceType , //
class UserContact( val uuid: Int ,
var phone: String ,
var sms: Boolean ,
var pushNotification: Boolean ,
var deviceType: UserDeviceType , // Enum
var jabberID: String ){
}
现在我想在这个类中编写一个辅助构造函数,但我不知道如何为枚举指定默认值
我试过使用“_”,但不起作用
def this(){
this(0, "", false , false , _ , "")
}
请帮助您需要输入一些实际值。只需查看
UserDeviceType
值,然后选择您希望在该构造函数中使用的值。但是你应该想想,如果你真的想要一个这样的辅助构造函数;正如彼得·尼扬(Peter Neyens)的评论所解释的那样,在大多数情况下,这看起来都是一个糟糕的设计
由
var x:SomeEnumType=\uuu
生成的“默认”值是null
,与任何对象类型(包括String
)相同,但这很少是您想要的(只有在保证变量稍后初始化的情况下才应该使用)。您可以编写this(0,”,false,false,null,”
,但是在Scala中使用null
是一个非常糟糕的主意。如果您希望用户联系人
s没有设备类型
(或电话
,jabberID
,…),则最好使用选项[T]
,将字段设置为可选字段,同时将0指定给uuid
字段可能不是您想要的,因为您以后将无法更改它(因为它是一个值)。您还可以使用java.util.UUID
作为类型,而不是Int