ottenere solo il nome della classe Class.getName ()


88

Come posso ottenere il nome della classe

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


Sono interessato solo a ottenere l'ultima parte, ovvero solo String
Any Api può farlo?


4
Java ha un'ottima documentazione in linea. La pagina che andyb ha collegato di seguito è un esempio. Ogni volta che hai una domanda riguardante l'esatta funzionalità disponibile da una classe o un pacchetto, i javadoc sono facili da trovare come Google "java 6 <pacchetto o classe in questione>".
jpm

Risposte:


185

9
String.class.getSimpleName () -> String, dove come String.class.getName () -> java.lang.String
Peter Dietz

Grazie, @andyb getSimpleName()è più facile accedere al nome della classe meno il nome del pacchetto. Sintassi: object.getClass().getSimpleName() codice di esempio
Abhijeet

Come assegnarlo alla variabile stringa statica. mostra un errore in Android Studio.
MohanRaj S

Non funziona per le classi interne: questo rimuoverà il nome della classe inclusa, non solo il pacchetto.
toolforger

9

Il sotto in entrambi i modi funziona bene.

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

Uscita come di seguito:

Il nome della classe è: package.Student

Il semplice nome della classe è: Studente


7

o programmaticamente

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

1
Questo mi ha aiutato perché non posso usare getSimpleName () dal mio framework ... Tq
Imposter

1
Inoltre, l'approccio programmatico produce risultati sensati per le classi anonime.
Hollis Waite,

@Imposter stai usando qualcosa di prima di Java 1.5?
Stealth Rabbi

È necessario gestire il caso in cui non .viene trovato alcun .
eckes

@eckes se il punto non viene trovato, il risultato sarà -1, aggiungendo 1 otterrai una sottostringa a partire dall'indice 0, esattamente ciò di cui hai bisogno in questo caso. (L'ho appena provato int[], il risultato è "[I".)
toolforger

4

È possibile utilizzare la seguente semplice tecnica per stampare il registro con il nome della classe.

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

Supponiamo di dover controllare il valore della variabile in arrivo nel metodo, quindi possiamo usare log come di seguito:

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

L'importanza di questa riga è che possiamo controllare il nome del metodo insieme al nome della classe. Per scrivere questo tipo di registro.

scrivi: - loge e Invio.

stamperà sulla console

E/MainActivity: printVariable:

2

Social.class.getSimpleName ()

getSimpleName (): restituisce il nome semplice della classe sottostante come indicato nel codice sorgente. Restituisce una stringa vuota se la classe sottostante è anonima. Il nome semplice di un array è il nome semplice del tipo di componente con "[]" aggiunto. In particolare il nome semplice di un array il cui tipo di componente è anonimo è "[]".


1

Ecco il modo Groovy di accedere alle proprietà degli oggetti:

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

-2

Ottieni un nome semplice invece del percorso.

String onlyClassName =  this.getLocalClassName(); 

chiamare il metodo sopra in onCreate


Soluzione incompleta.
PLG

Se non fornisci la fonte per il metodo, OP non sarà in grado di usarlo.
eckes
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.