首页 > 解决方案 > 二维数组的 Java 组件类型

问题描述

我有一个int[][] myArray用整数填充的二维数组。

如果我这样做myArray.getClass().getComponentType(),它会返回我[I

为什么呢?

编辑 我有另一个库来检查我的二维数组的组件类型。它只允许Integer.TYPE, Character.TYPE,Long.TYPE等等。或者,这是否意味着通过此检查,它根本不允许我使用 2D 数组?

标签: java

解决方案


getComponentType()方法java.lang.Class class用于获取表示数组的组件类型的Class,如果该类表示一个。否则返回 null。

getClass()是Object类的方法。此方法返回此对象的运行时类。

对于一维数组,例如:int arr[] = new int[5],当我们尝试获取类时arr.getClass(),输出是

类[我

再次对于相同的一维数组,当我们尝试时arr.getClass().getComponentType(),输出是

整数

二维数组可以称为数组的数组。

对于二维数组,例如:int arr[][] = new int[5][5],当我们尝试获取类时arr.getClass(),输出是

类[[我

解释:class [ => 代表数组 [ => 代表数组 I => 代表 Integer

因为float arr[][],它会是

类[[F

当我们尝试arr.getClass().getComponentType()时,输出是

类[我

当我们再次尝试 getComponetType() 时Arr.getClass().getComponentType().getComponentType(),我们得到的输出为

整数

从上面的结果可以清楚地看出,对于N维数组,我们必须反复Get Component Type,直到我们解开类Type


推荐阅读