java - 如何制作一个二维数组,其中下一行是Java中前一行的平方?
问题描述
我需要创建一个通用函数,它接受一个数字数组(整数、双精度数或其他任何值),然后创建一个二维数组,其中第一行是该数组,下一行是前一个的平方。我所做的给了我一个
java.lang.object 不能转换为 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);
推荐阅读
- json - 无法将 sed 输出存储到变量
- node.js - process.env.PORT 未定义(在 LinuxCloud 环境中)
- javascript - HtmlAgilityPack,从特定页面加载所有评论,包括卸载评论
- r - 条件值过滤
- mysql - 为每行选择 x 天的 AVG
- sql - 不支持 Access SQL 连接表达式
- java - 无法通过代理进行隧道传输。代理返回“需要 HTTP/1.1 407 代理身份验证”
- reactjs - 如何防止 CreateReactApp 编译因 lint 错误而停止?
- openmdao - Openmdao - 优化时并行计算有限差分
- php - 将原始 PHP 站点转换为 Laravel