Как получить класс Array для данного класса в Java?
У меня есть переменная Class
, которая содержит определенный тип, и мне нужно получить переменную, которая содержит соответствующий класс массива. Лучшее, что я мог придумать, это следующее:
Class arrayOfFooClass = java.lang.reflect.Array.newInstance(fooClass, 0).getClass();
Есть ли способ сделать это, не создавая новый экземпляр?
Ответы
Ответ 1
Если вы не хотите создавать экземпляр, вы можете создать каноническое имя массива вручную и получить класс по имени:
// Replace `String` by your object type.
Class stringArrayClass = Class.forName(
"[L" + String.class.getCanonicalName() + ";"
);
Но Якоб Дженков в своем блоге утверждает, что ваше решение лучше, потому что ему не нужно возиться со строками.
Class stringArrayClass = Array.newInstance(String.class, 0).getClass();
Ответ 2
Class stringArrayOfClass = String[].class;