簡體   English   中英

java:ClassCastException - [Ljava.lang.Long; 無法強制轉換為java.lang.Long

[英]java: ClassCastException - [Ljava.lang.Long; cannot be cast to java.lang.Long

我使用IC5ction類使用red5和設置/獲取屬性,但這確實不相關。

'L'在java中意味着很長。 所以0L是0型長而不是'0',它是0型整數。

[Ljava.lang.Longjava.lang.Long在以下錯誤消息中有什么區別:

stack trace: java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to java.lang.Long

更新

代碼示例:

 static Long getLongAttribute(IConnection conn, String attribute) {
    Long result=null;
    try {
        if (!conn.hasAttribute(attribute))
            throw new Exception(attribute +  " - Long attribute not found!");
      result = conn.getLongAttribute(attribute); // <--- ERRROR ON THIS LINE
    } catch (Exception e) {
        _handleException(e);
    }
    return result;
}

第一個對象是Long數組,第二個對象是Long 嘗試這個

    Long l = 1l;
    Long[] l2 = {};
    System.out.println(l.getClass());
    System.out.println(l2.getClass());

產量

class java.lang.Long
class [Ljava.lang.Long;

但我確實同意[L_class_; 數組類型的表示非常混亂。 我想知道它是怎么來的。

您的代碼嘗試將Long[] to Long ClassCastException Long[] to Long ,這會導致ClassCastException

我的代碼在哪里有類似的問題

List<Object[]> rows = criteria.list();

但我的標准只有count(*)投影,因此criteria.list()只返回List<Long>而不是List<Long[]>

我通過改變它來解決它

List<Object> rows = criteria.list();

[Ljava.lang.Longjava.lang.Long的列表

編輯:如下所述,它是一個數組。 對不起,我輸入的速度太快了......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM