Как получить исходный класс массива static [] - PullRequest
1 голос
/ 17 января 2020

Я хочу базовый класс из массива c. Например, если написано String[].class Я хочу получить String.class

    String[] foo = new String[0];
    System.out.println(foo.getClass());

Вывод

class [Ljava.lang.String;

1 Ответ

6 голосов
/ 17 января 2020

Использование Class#getComponentType():

Class<?> type = foo.getClass().getComponentType();
System.out.println(type); // class java.lang.String

Из документов :

Возвращает класс, представляющий тип компонента массив. Если этот класс не представляет класс массива, этот метод возвращает ноль.

...