obtenir uniquement le nom de la classe Class.getName ()

87

Comment puis-je obtenir le nom de la classe

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


Je ne suis intéressé que par la dernière partie, c'est-à-dire que seule String
Any Api peut le faire?

akshay
la source
4
Java a une excellente documentation en ligne. La page liée à andyb ci-dessous est un exemple. Chaque fois que vous avez une question concernant la fonctionnalité exacte disponible à partir d'une classe ou d'un package, les javadocs sont aussi faciles à trouver que Google "java 6 <package ou classe en question>".
jpm

Réponses:

182

Class.getSimpleName()

Andyb
la source
9
String.class.getSimpleName () -> String, où comme String.class.getName () -> java.lang.String
Peter Dietz
Merci, @andyb getSimpleName()est plus facile d'accéder au nom de la classe moins le nom du package. Syntaxe: object.getClass().getSimpleName() Sample code
Abhijeet
Comment l'attribuer pour une variable de chaîne statique. il montre une erreur dans le studio Android.
MohanRaj S
Ne fonctionne pas pour les classes internes: cela supprimera le nom de la classe englobante, pas seulement le package.
toolforger
9

Les deux méthodes ci-dessous fonctionnent bien.

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

Output as below:

The Class Name is: package.Student

The simple Class Name is: Student

Venkatesh K
la source
7

or programmaticaly

String s = String.class.getName();
s = s.substring(s.lastIndexOf('.') + 1);
Mauricio Quintana
la source
1
This helped me as i cant use getSimpleName() from my framework ...Tq
Imposter
1
Also, programmatic approach yields sane results for anonymous classes.
Hollis Waite
@Imposter you're using something earlier than Java 1.5?
Stealth Rabbi
You need to handle the case where no . is found.
eckes
@eckes if the dot isn't found, the result will be -1, adding 1 will give you a substring starting at index 0 - exactly what you need in this case. (I just tested that with int[], the result is "[I".)
toolforger
4

You can use following simple technique for print log with class name.

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

Suppose we have to check coming variable value in method then we can use log like bellow :

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

Importance of this line is that, we can check method name along with class name. To write this type of log.

write :- loge and Enter.

will print on console

E/MainActivity: printVariable:
Kailas Bhakade
la source
2

Social.class.getSimpleName()

getSimpleName() : Returns the simple name of the underlying class as given in the source code. Returns an empty string if the underlying class is anonymous. The simple name of an array is the simple name of the component type with "[]" appended. In particular the simple name of an array whose component type is anonymous is "[]".

LSD25
la source
1

Here is the Groovy way of accessing object properties:

this.class.simpleName    # returns the simple name of the current class
eaglet3d
la source
-2

Get simple name instead of path.

String onlyClassName =  this.getLocalClassName(); 

call above method in onCreate

AndroidGeek
la source
Incomplete solution.
PLG
If you don’t provide the source for the method OP won’t be able to use it.
eckes