отримання лише імені класу Class.getName ()


87

Як я можу отримати назву класу

String.class.getName()  returns java.lang.String


Мене цікавить лише остання частина, тобто тільки String
Any Api може це зробити?


4
Java має чудову документацію в Інтернеті. Прикладом є сторінка, на яку посилається andyb нижче. Кожного разу, коли у вас виникає запитання щодо точних функціональних можливостей, доступних для класу чи пакету, javadocs так само легко знайти, як і Googling "java 6 <відповідний пакет або клас>".
jpm

Відповіді:


182

9
String.class.getSimpleName () -> String, де як String.class.getName () -> java.lang.String
Peter Dietz

Дякую, @andyb getSimpleName()легше отримати доступ до імені класу мінус назва пакета. Синтаксис: object.getClass().getSimpleName() Зразок коду
Abhijeet

Як призначити його для статичної змінної рядка. він показує помилку в android studio.
MohanRaj S

Не працює для внутрішніх класів: Це видалить ім’я класу, що вкладає, а не лише пакет.
toolforger

9

Наведені нижче обидва способи добре працюють.

System.out.println("The Class Name is: " + this.getClass().getName());
System.out.println("The simple Class Name is: " + this.getClass().getSimpleName());

Результат, як показано нижче:

Назва класу: package.Student

Проста назва класу: Студент


7

або програмно

String s = String.class.getName();
s = s.substring(s.lastIndexOf('.') + 1);

1
Це допомогло мені, оскільки я не можу використовувати getSimpleName () з мого фреймворку ... Tq
Imposter

1
Крім того, програмний підхід дає здорові результати для анонімних класів.
Холліс Уейт

@Imposter ви використовуєте щось раніше Java 1.5?
Stealth Rabbi

Вам потрібно розглянути справу, коли не .знайдено жодного .
eckes

@eckes, якщо крапки не знайдено, результат буде -1, додавши 1, ви отримаєте підстроку, починаючи з індексу 0 - саме те, що вам потрібно в цьому випадку. (Я щойно перевірив це за допомогою int[], результат є "[I".)
toolforger

4

Ви можете використовувати наступну просту техніку для журналу друку з назвою класу.

private String TAG = MainActivity.class.getSimpleName();

Припустимо, ми повинні перевірити значення змінної, що надходить у метод, тоді ми можемо використовувати журнал, як показано нижче:

private void printVariable(){
Log.e(TAG, "printVariable: ");
}

Важливість цього рядка полягає в тому, що ми можемо перевірити назву методу разом з назвою класу. Щоб написати цей тип журналу.

напишіть: - loge та Enter.

надрукує на консолі

E/MainActivity: printVariable:

2

Social.class.getSimpleName ()

getSimpleName (): Повертає просте ім'я базового класу, вказане у вихідному коді. Повертає порожній рядок, якщо базовий клас анонімний. Просте ім'я масиву - це просто ім'я типу компонента із доданим "[]". Зокрема, простим ім'ям масиву, тип компонента якого є анонімним, є "[]".


1

Ось спосіб Groovy для доступу до властивостей об’єкта:

this.class.simpleName    # returns the simple name of the current class

-2

Отримайте просте ім’я замість шляху.

String onlyClassName =  this.getLocalClassName(); 

виклик вище методу в onCreate


Неповне рішення.
ПЛГ

Якщо ви не надасте джерело методу, OP не зможе його використовувати.
еккес,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.