Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中辅助构造函数中枚举的默认值_Scala_Enums - Fatal编程技术网

Scala中辅助构造函数中枚举的默认值

Scala中辅助构造函数中枚举的默认值,scala,enums,Scala,Enums,我有一个类UserContact,它在构造函数中有一个枚举 class UserContact( val uuid: Int , var phone: String , var sms: Boolean , var pushNotification: Boolean , var deviceType: UserDeviceType , //

我有一个类UserContact,它在构造函数中有一个枚举

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