java - 如何在Java中创建一个二维数组,其中接下来的每一行都是前一行的平方?

标签 java arrays multidimensional-array

我需要创建一个通用函数,它接受一个数字数组(整数、 double 或其他数字),然后创建一个二维数组,其中第一行是该数组,下一行是前一个数组的平方。我所做的给了我一个

java.lang.object cannot be cast to java.lang.number

即使我输入了E extends Number。我仅使用 int 尝试了相同的函数,它完成了我需要它做的事情。

我哪里出错了?我是否使用了“E extends Number”错误?

public static<E> void napraviMatricu(E[] niz) {
    int n = niz.length;
    E[][] matrica = (E[][]) new Object[n][n];

    for(int i = 0; i < matrica[0].length; i++)
        matrica[0][i] = niz[i];

    for(int i = 1; i < matrica.length; i++)
        for(int j = 0; j < matrica[i].length; j++)
            matrica[i][j] = matrica[i-1][j] * matrica[i-1][j];

    for(int i = 0; i < matrica.length; i++) {
        for(int j = 0; j < matrica[i]. length; j++)
            System.out.print(matrica[i][j] + " ");
        System.out.println("");
    }
}

最佳答案

这是你的问题:

E[][] matrica = (E[][]) new Object[n][n];

执行此操作( cls 的类型为 Class<E> ):

@SuppressWarnings("unchecked")
E[][] matrica = (E[][]) Array.newInstance(cls, n, n);

Reference

关于java - 如何在Java中创建一个二维数组,其中接下来的每一行都是前一行的平方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61045817/

相关文章:

java - 如何排除 IntelliJ 中的不安全删除?

java - 如何将排序后的整数传递给 JOptionPane?

java - 方法未完成运行 - 无限工作

java - 使用属性文件中的类名作为出厂返回的默认值

ruby - 将二维数组的子数组压缩在一起

javascript - 如何在javascript中创建一个包含一组数组并动态为其赋值的数组?

php - 我应该如何使用 usort 按键对这个数组进行排序?

php - 根据父 ID 值将数组从一维转换为多维

java - 失败 - 上下文路径中的应用程序无法启动 <SpringBoot>

java - 在两个数组中查找值