相关疑难解决方法(0)

将Object数组转换为Integer数组错误

以下代码有什么问题?

Object[] a = new Object[1];
Integer b=1;
a[0]=b;
Integer[] c = (Integer[]) a;
Run Code Online (Sandbox Code Playgroud)

代码在最后一行有以下错误:

线程"main"中的异常java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.Integer;

java casting

66
推荐指数
4
解决办法
12万
查看次数

在Java中将基元数组转换为容器数组

是否有一种优雅的方法将基元数组转换为相应容器对象的数组 - 例如,将a byte[]转换为a Byte[]?还是我坚持循环并手动完成?

是的,for循环并不是很困难.只是有点难看.

java arrays

46
推荐指数
3
解决办法
3万
查看次数

将对象转换为数组

所以我有一个可能是数组的对象.它也可以是原始的或字符串.如果它是一个数组,它可以是一个字面上的任何数组.

我没有问题弄清楚它是否是一个数组,但我似乎无法把它转换成任何我可以迭代来获取值的东西.

// o is an object and clazz is the class of the o
if (clazz == Array.class) {
            Class ofArray = o.getClass().getComponentType();
            String arrayType = ofArray.getName(); // 'Double' for my test case
            //ERROR: [D cannot be cast to [Ljava.lang.Object 
            Object[] objects = (Object[]) o; 
    }
Run Code Online (Sandbox Code Playgroud)

我的背景是在ruby和php(它可以正常工作)和静态打字是我的头.有任何想法吗?

编辑:

这会引发错误

[D cannot be cast to [Ljava.lang.Object.
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

if (o.getClass().isArray()) {
    Object[] objects = (Object[]) o;  
}
Run Code Online (Sandbox Code Playgroud)

java arrays

14
推荐指数
1
解决办法
4万
查看次数

使List <Boolean>和boolean []的函数通用

我有两个函数来检查数组或列表的所有元素是否都是true.我把两者结合起来遇到了麻烦.如何将函数转换为一个通用Java函数.

public static boolean allTrue(boolean[] booleans) {
    if (booleans == null) {
        return false;
    }

    for (boolean bool : booleans) {
        if (!bool) {
            return false;
        }
    }
    return true;
}

public static boolean allTrue(List<Boolean> booleans) {
    if (booleans == null) {
        return false;
    }

    for (boolean bool : booleans) {
        if (!bool) {
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

java generics

5
推荐指数
1
解决办法
515
查看次数

标签 统计

java ×4

arrays ×2

casting ×1

generics ×1