Groovy 无法将java.lang.Object转换为java.util.Date

Groovy 无法将java.lang.Object转换为java.util.Date,groovy,Groovy,在groovy应用程序中,我使用Hibernate createCriteria()接收java.sql.Timestamp对象,并希望将其转换为java.util.Date对象。我尝试了以下代码,但无效: Date javaDateObject = sqlDateObject Date javaDateOject = (Date)sqlDateObject Date javaDateObject = sqlDateObject as Date 我得到一个错误: org.codehaus.g

在groovy应用程序中,我使用Hibernate createCriteria()接收java.sql.Timestamp对象,并希望将其转换为java.util.Date对象。我尝试了以下代码,但无效:

Date javaDateObject = sqlDateObject
Date javaDateOject = (Date)sqlDateObject
Date javaDateObject = sqlDateObject as Date 
我得到一个错误:

org.codehaus.groovy.runtime.typehandling.GroovyCastException: 
  Cannot cast object '[Ljava.lang.Object;@14a4864' with class 
  '[Ljava.lang.Object;' to class 'java.util.Date'
试一试

Date javaDateObject = new Date(sqlDateObject.time)

由于sqlDateObject实际上是一个对象[],而不是java.sql.Timestamp,因此该错误是正常的

假设数组包含时间戳作为(单个)第一个元素,您当然可以执行
datejavadateobject=(Date)sqlDateObject[0]
(或带有“as”的变量)。但因为Timestamp是Date的一个子类,所以它实际上不起任何作用

如果你真的需要约会,我建议你:

Date javaDateOject = new Date(sqlDateObject[0].time)

不,对象数组不能强制转换为日期,这很有意义。谢谢您的视图谢谢您的视图对您有用吗?如果是,请将答案标记为正确。