String Scala如何实例化新选项[java.sql.Date]类型

String Scala如何实例化新选项[java.sql.Date]类型,string,scala,date,option,String,Scala,Date,Option,我有var date of birth2:Option[java.sql.date]=None 以后我必须用字符串填写出生日期2 String date = "01/01/1990" var formate = new SimpleDateFormat("dd/MM/yyyy").parse(date) var aDate = new java.sql.Date(formate.getTime()); 但是aDate只是java.sql.Date的类型。如何分配 var mdate\u

我有var date of birth2:Option[java.sql.date]=None

以后我必须用字符串填写出生日期2

 String date = "01/01/1990"
 var formate = new SimpleDateFormat("dd/MM/yyyy").parse(date)
 var aDate = new java.sql.Date(formate.getTime()); 
但是aDate只是java.sql.Date的类型。如何分配

var mdate\u of_birth2:Option[java.sql.Date]=Date//Date只是字符串类型


不过,您应该看看是否可以重构代码以使其成为val。

而不是像@hezamu建议的那样显式使用Some,您可以在选项companion上使用apply方法,如下所示:

val maybeADate:Option[Date] = Option(aDate)

在这种情况下,在AdTe为null的机会中,那么您的选项将是“不”而不是“不希望的”。

< P>由于语法分析方法在出现格式错误时将抛出异常,您也可以考虑使用“尝试”,将失败压缩为“否”。

如果您确实希望它抛出异常,那么我将使用Option.apply使用@cmbaxter的答案

val maybeADate:Option[Date] = Option(aDate)
val aDate = Try(new SimpleDateFormat("dd/MM/yyyy").parse(date))
    .map(d => new java.sql.Date(d.getTime()))
    .toOption