0
List<Object[]> arrayList = new ArrayList<Object[]>();
for(Object[] obj: arrayList)
{
  // assuming at 0th location Timestamp value 
  Date dt = convertTimestampToDate((Timestamp)obj[0]) // Timestampvalue , '2013-09-11 00:00:0' throwing classCastException at this line
}

public static java.sql.Date convertTimestampToDate(java.sql.Timestamp timestamp) {
        if(isNull(timestamp))
            return null;
        long milliseconds = timestamp.getTime() + (timestamp.getNanos() / 1000000);
        return new java.sql.Date(milliseconds);
    }

抛出的异常是

您不能将 java.lang.String 转换为 Timestamp 在这里,我假设 obj[0] 是一种对象类型,并将其转换为 Timestamp 任何想法都是显而易见的。

4

2 回答 2

3

例外是非常不言自明的。在 Java 中,一切都是对象(除了原语,但这是另一个主题)。所以,即使你有一个Objects 数组,这并不意味着你可以随意地将它们Objects转换为你想要的任何东西。

Date dt = convertTimestampToDate((Timestamp)obj[0])

obj[0]显然是String当您尝试该演员时,因此您将需要使用SimpleDateFormat或类似的方法来解析String. 您不能将 aString转换为 aTimestamp的原因很简单,Java 不(也不能)知道如何做到这一点。

于 2013-09-11T14:43:37.327 回答
1

You should convert the String object to Timestamp by using the Timestamp#valueOf(String s) method.

Change

Date dt = convertTimestampToDate((Timestamp)obj[0]) ;

to

Date dt = convertTimestampToDate(Timestamp.valueOf(obj[0].toString()));
于 2013-09-11T14:44:11.920 回答