Как получить имя класса без пакета?

В С# мы имеем Type.FullName и Type.Name для получения имени типа (класса в этом случае) с или без пространства имен (пакет в java-мире).

Что такое java-эквивалент Type.Name?

Очевидно, что должен быть лучший способ, чем использовать Class.getName() и разбить его на имя пакета вручную.

Ответ 1

Class.getSimpleName()

Возвращает простое имя базового класса, как указано в исходном коде. Возвращает пустую строку, если базовый класс является анонимным.

Простым именем массива является простое имя типа компонента с добавлением "[]". В частности, простым именем массива, тип компонента которого является анонимным, является "[]".

Фактически он лишает информацию о пакете из имени, но это скрыто от вас.

Ответ 2

В JDK версии 1.5 и выше будет работать следующая функция.

public String getSimpleName()

Ответ 3

Если вы используете StackTraceElement, используйте:

String fullClassName = stackTraceElement.getClassName();
String simpleClassName = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);

System.out.println(simpleClassName);