相关疑难解决方法(0)

Java泛型和数字

试图看看我是否可以清理我的一些数学代码,主要是矩阵的东西,我试图使用一些Java泛型.我有以下方法:

private <T> T[][] zeroMatrix(int row, int col) {
    T[][] retVal = (T[][])new Object[row][col];
    for(int i = row; i < row; i++) {
        for(int j = col; j < col; j++) {
            retVal[i][j] = 0;
        }
    }
    return retVal;
}
Run Code Online (Sandbox Code Playgroud)

retVal [i] [j] = 0行是引起头痛的行.该行的目标是使用T表示为0初始化数组.我试图用它做各种各样的事情:(T在类中被定义为T extends Number)

retVal[i][j] = (T)0;
retVal[i][j] = new T(0);
Run Code Online (Sandbox Code Playgroud)

唯一有效的是

retVal[i][j] = (T)new Object(0);
Run Code Online (Sandbox Code Playgroud)

这不是我想要的.

这可能吗?有没有更简单的方法来表示任何类型的数字的NxM矩阵(包括可能的BigDecimal),还是我被困?

java generics

18
推荐指数
3
解决办法
6287
查看次数

Java Generics数组语法

以下声明指定了哪种数据结构?

 List<ArrayList>[] myArray;
Run Code Online (Sandbox Code Playgroud)

我认为它应该声明一个数组,其中每个元素是一个List(例如,一个LinkedList或一个ArrayList),并要求每个元素List包含ArrayList对象.

我的推理:

 List<String> someList;             // A List of String objects
 List<ArrayList> someList;         // A List of ArrayList objects
 List<ArrayList>[] someListArray;  // An array of List of ArrayList objects
Run Code Online (Sandbox Code Playgroud)

在运行一些测试之后,我确定它接受一个数组,其中每个元素都是一个LinkedList对象,并没有指定LinkedList对象包含的内容.

因此,List<ArrayList>指定List必须包含的内容,但List<ArrayList>[]指定List必须如何实现.

我错过了什么吗?

这是我的测试.

import java.util.ArrayList;
import java.util.List;
import java.util.LinkedList;


public class Generics1 {

    public static void main(String[] args) {

        List<ArrayList>[] someListArray;

        someListArray = getArrayWhereEachElementIsAnArrayListObject();
        // Why does this …
Run Code Online (Sandbox Code Playgroud)

java generics syntax types

16
推荐指数
3
解决办法
4922
查看次数

标签 统计

generics ×2

java ×2

syntax ×1

types ×1