Как получить название класса без пакета? - PullRequest
174 голосов
/ 22 апреля 2010

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

Что такое Java, эквивалентный Type.Name?

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

Ответы [ 3 ]

319 голосов
/ 22 апреля 2010

Class.getSimpleName()

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

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

На самом деле он удаляет информацию о пакете из имени, но это скрыто от вас.

20 голосов
/ 22 апреля 2010

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

public String getSimpleName()
13 голосов
/ 26 марта 2015

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

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

System.out.println(simpleClassName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...