温馨提示×

java怎么获取类名

小亿
82
2024-09-03 20:57:53
栏目: 编程语言

在Java中,可以通过以下几种方法获取类名:

  1. 使用getClass()方法和getName()方法:
public class MyClass {
    public static void main(String[] args) {
        MyClass obj = new MyClass();
        String className = obj.getClass().getName();
        System.out.println("类名: " + className);
    }
}
  1. 使用getSimpleName()方法:
public class MyClass {
    public static void main(String[] args) {
        MyClass obj = new MyClass();
        String simpleClassName = obj.getClass().getSimpleName();
        System.out.println("简单类名: " + simpleClassName);
    }
}
  1. 使用getCanonicalName()方法:
public class MyClass {
    public static void main(String[] args) {
        MyClass obj = new MyClass();
        String canonicalClassName = obj.getClass().getCanonicalName();
        System.out.println("规范类名: " + canonicalClassName);
    }
}
  1. 使用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()方法返回泛型类型的名称。

0