[英]java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to 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.Long
和java.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.Long
是java.lang.Long
的列表
編輯:如下所述,它是一個數組。 對不起,我輸入的速度太快了......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.