gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 17:35:43 25 4
gpt4 key购买 nike

我需要创建一个通用函数,它接受一个数字数组(整数、 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com