Вот что должны сказать по этому поводу документы java.lang.Class
:
Каждый массив также принадлежит классу, который отражается как объект Class, который используется всеми массивами с одинаковым типом элемента и числом измерений.
Так же, как объект Class
для типа AmountInfo
, существует Class
для типа массива 1D массива AmountInfo[]
, так же как и для типа 2D массива AmountInfo[][]
, также и т.д.
A 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 }