Как получить имя класса без пакета?
В С# мы имеем 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);