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.