2011-07-21 12 views
51

Jak mogę uzyskać nazwę klasytylko coraz nazwę Class.getName klasy()

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


Jestem zainteresowany tylko w uzyskaniu ostatnią część czyli tylko String
Wszelkie Api można zrobić że?

+3

Java ma świetną dokumentację online. Poniższa strona, do której używa się andya, jest przykładem. Za każdym razem, gdy masz pytanie dotyczące dokładnej funkcjonalności dostępnej z klasy lub pakietu, javadocs są tak łatwe do znalezienia, jak Googling "java 6 ". – jpm

Odpowiedz

121
+7

String.class.getSimpleName() -> String, gdzie jako String.class.getName() -> java.lang.String –

+0

Dziękuję, @andyb 'getSimpleName()' jest łatwiej uzyskać dostęp do nazwy klasy minus nazwa pakietu. Składnia: 'object.getClass(). GetSimpleName()' [Przykładowy kod] (http://ideone.com/7E0I6B) – Abhijeet

+0

Sposób przypisania go do statycznej zmiennej łańcuchowej. to pokazuje błąd w Androidzie. –

6

lub programmaticaly

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

To pomogło mi, ponieważ nie mogę użyć getSimpleName() z mojego frameworka ...Tq – Imposter

+1

Ponadto podejście programistyczne daje rozsądne wyniki dla anonimowych klas. –

+0

@Imposter używasz czegoś wcześniej niż Java 1.5? –

2

Social.class.getSimpleName()

getSimpleName(): Zwraca prostą nazwę klasy bazowej, jak podano w kodzie źródłowym. Zwraca pusty łańcuch, jeśli podstawowa klasa jest anonimowa. Prosta nazwa tablicy jest prostą nazwą typu komponentu z dołączonym "[]". W szczególności prosta nazwa tablicy, której typem komponentu jest anonimowy, to "[]".

3

Poniższe dwie strony działają poprawnie.

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

wyjścia jak poniżej:

Class Name is: DemoJava.Student

Prosta Nazwa klasy jest: Student

2

można użyć następujących prostej techniki do druku zaloguj się, używając nazwy klasy.

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

Załóżmy, że mamy do sprawdzenia przyjście zmienną wartość w metodzie wtedy możemy użyć zalogować się jak poniżej:

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

Znaczenie tej linii jest to, że możemy sprawdzić nazwę metody wraz z nazwą klasy. Aby zapisać ten typ dziennika.

napisz: - loge i Enter.

wypisze na konsoli

E/MainActivity: printVariable: 5