阅读量:0
在Java中,可以通过以下几种方法获取类名:
- 使用
getClass()
方法和getName()
方法:
public class MyClass { public static void main(String[] args) { MyClass obj = new MyClass(); String className = obj.getClass().getName(); System.out.println("类名: " + className); } }
- 使用
getSimpleName()
方法:
public class MyClass { public static void main(String[] args) { MyClass obj = new MyClass(); String simpleClassName = obj.getClass().getSimpleName(); System.out.println("简单类名: " + simpleClassName); } }
- 使用
getCanonicalName()
方法:
public class MyClass { public static void main(String[] args) { MyClass obj = new MyClass(); String canonicalClassName = obj.getClass().getCanonicalName(); System.out.println("规范类名: " + canonicalClassName); } }
- 使用
getTypeName()
方法(仅适用于Java 8及更高版本):
import java.lang.reflect.ParameterizedType; public class MyClass<T> { public static void main(String[] args) { MyClass<String> obj = new MyClass<>(); String typeName = ((ParameterizedType) obj.getClass().getGenericSuperclass()).getActualTypeArguments()[0].getTypeName(); System.out.println("类型名称: " + typeName); } }
这些方法将返回不同的类名表示形式。getName()
方法返回完全限定类名,包括包名;getSimpleName()
方法返回不包含包名的类名;getCanonicalName()
方法与getName()
方法类似,但对于数组类型会返回更友好的表示形式;getTypeName()
方法返回泛型类型的名称。