java: ClassCastException - [Ljava.lang.Long;无法转换为 java.lang.Long

标签 java casting

我使用 red5 并使用 IConnection 类设置/获取属性,但这真的不相关。

'L'在java中表示long。所以 0L 是 0 类型 Long 而不是只是 '0' 这是 0 类型 Integer。

下面的错误信息中[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_; 数组类型的表示非常困惑。我想知道它是怎么变成那样的。

关于java: ClassCastException - [Ljava.lang.Long;无法转换为 java.lang.Long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4510354/

相关文章:

awk - 在 awk 中转换为 int

c# - 将字母类型转换为 int 时,C# 会做什么?

java - 在 Android 上使用 Dagger2 在某些设备上遇到 VerifyError

java - 在 ACM 图形 API 中对颜色使用十六进制代码

java - Java 管理类和接口(interface)

java - 关于类型转换对象支架的问题

c# - 为什么根据 ReSharper 将 double-to-int 转换分配给冗余的动态变量?

java - 将对象转换为通用类型以返回

java - 泽西客户端 : Cache-Manager for Conditional GET?

Java Date 从长时间返回不正确的日期