How to get the name of a class without the package?
JavaJava Problem Overview
In C# we have Type.FullName
and Type.Name
for getting the name of a type (class in this case) with or without the namespace (package in java-world).
What is the java equivalent to Type.Name
?
Clearly there must be a better way than using Class.getName()
and strip it of the package name manually.
Java Solutions
Solution 1 - Java
> 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 "[]".
It is actually stripping the package information from the name, but this is hidden from you.
Solution 2 - Java
If using a StackTraceElement, use:
String fullClassName = stackTraceElement.getClassName();
String simpleClassName = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);
System.out.println(simpleClassName);