我将Axis Web服务包装在Springboot微服务中,偶然发现了一些没有意义的代码。

Class cls = AmountInfo[].class;


上面返回什么类?

最佳答案

这是java.lang.Class的文档必须说的:


  每个数组还属于一个反映为Class对象的类,该类对象由元素类型和维数相同的所有数组共享。


就像类型ClassAmountInfo对象一样,数组1D数组类型Class也有AmountInfo[],二维数组类型AmountInfo[][]也有类型,等等。

数组类型的Class在调用true时将返回isArray()AmountInfo[].class等效于AmountInfo.class.arrayType()。您可以将其与反射API一起使用,就像使用普通类一样(如下示例):

//Creating a 1D array of AmountInfo type
jshell> Array.newInstance(AmountInfo.class, 2)
$65 ==> AmountInfo[2] { null, null }

// Creating a 2D array of AmountInfo type
jshell> Array.newInstance(AmountInfo[].class, 2)
$66 ==> AmountInfo[2][] { null, null }

09-30 11:19