当前位置: 首页 > 面试题库 >

使用Class对象创建通用二维数组

鲜于致远
2023-03-14
问题内容

Class<T>在构造函数中提供了带有对象的泛型类型。我想T[][]在此构造函数中创建二维数组,但是这可能吗?


问题答案:

与如何在Java中创建通用数组相同?但扩展到2D:

import java.lang.reflect.Array;

public class Example <T> {

    private final Class<? extends T> cls;

    public Example (Class<? extends T> cls) {
        this.cls = cls;
    }

    public void arrayExample () {
        // a [10][20] array
        @SuppressWarnings("unchecked")
        T[][] array = (T[][])Array.newInstance(cls, 10, 20);
        System.out.println(array.length + " " + array[0].length + " " + array.getClass());
    }

    public static final void main (String[] args) {
        new Example<Integer>(Integer.class).arrayExample();
    }

}

阅读上面JAB的注释后的注意:要扩展到更多维度,只需将[]和维度参数添加到newInstance()(cls是一个类,d1到d5是整数):

T[] array = (T[])Array.newInstance(cls, d1);
T[][] array = (T[][])Array.newInstance(cls, d1, d2);
T[][][] array = (T[][][])Array.newInstance(cls, d1, d2, d3);
T[][][][] array = (T[][][][])Array.newInstance(cls, d1, d2, d3, d4);
T[][][][][] array = (T[][][][][])Array.newInstance(cls, d1, d2, d3, d4, d5);

有关Array.newInstance()详细信息,请参见。



 类似资料:
  • 我正在编写一个java代码,计算一个数组的平均值,它很好地发挥了作用,但我想把它修改成一个2D数组(二维数组)。 任何帮助都将非常感谢,因为我不太擅长2D数组。

  • 问题内容: 我是Java的新手,当时我用Java创建了一系列对象。 例如,我有A类 但这只是创建指向A的指针(引用),而不是4个对象。它是否正确?我看到当我尝试访问创建的对象中的函数/变量时,出现空指针异常。为了能够操作/访问对象,我必须这样做 这是正确的还是我做错了什么?如果这是正确的,那真的很奇怪。 编辑:我觉得这很奇怪,因为在C ++中,你只是说新的A [4],它创建了四个对象。 问题答案:

  • 问题内容: 如何使用PHP实现或创建这种JSON对象? 经过几次尝试,我没有找到解决方案。例如,我尝试了这个: 问题答案:

  • 说明 支付宝境外到店支付-创建二维码 官方文档:https://global.alipay.com/service/external_QR_Code/52 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayCrossBorder\InStore\CreateQR\Request 属性 名称 类型 说明 $service string 接口名称 $notify_url stri

  • 每个类中的方法如下所示: }

  • 问题内容: 我需要使用NDK以及JNI将一些功能实现到Android应用程序中。 这是我所写的C代码: 我的问题或多或少在代码内得到了解释。也许还可以:函数(jobject)的返回类型可以吗? 现在,NDKTest.java: 当我尝试运行代码时,它不起作用。 问题答案: 既然是内部类,那么获得它的方法就是 内部类的约定在权威规范中并未真正明确记录,但是根深蒂固地存在于如此多的工作代码中,因此不太