【问题标题】:Cannot convert from long[] to long无法从 long[] 转换为 long
【发布时间】:2019-12-05 03:31:27
【问题描述】:

谁能向我解释这里发生了什么以及为什么?编译器对最后一行的转换不满意,它说“无法从 long[] 转换为 long”:

    long[][] l2d;
    long[] l1d = {1,2,3};

    Object o = l1d;
    l2d = new long[3][3];
    l2d[0][0] = (long[])o;

【问题讨论】:

  • l2d[0] = (long[])o;

标签: java arrays casting


【解决方案1】:

l2d 是长的二维数组。当您说 'l2d[0][0]' 时,您正在处理此 2D 数组中的单个单元格,该数组的类型为 long。您只能为其分配“长”。

【讨论】:

    【解决方案2】:

    Object o 是一个数组,您正试图将其作为二维数组中的元素分配。因此 long[] 不能转换为 long。 l2d[0][0] 期待一个 long,而您正试图将其分配为 long[]。请试试这个-

    long[][] l2d;
    long[] l1d = {1,2,3};
    
    Object o = l1d;
    l2d = new long[3][3];
    l2d[0] = (long[])o;
    

    【讨论】:

      【解决方案3】:

      显然l2d是一个二维数组,所以这里l2[0][0]应该是一个long值。然而l1d是一个简单的array,所以对象o也是一个array。的类型l2d[0][0] 和 o 不匹配,尽管 o 已被转换为长数组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-19
        • 1970-01-01
        • 2021-06-11
        相关资源
        最近更新 更多