📜  java 类名到字符串 - Java (1)

📅  最后修改于: 2023-12-03 15:31:34.256000             🧑  作者: Mango

Java 类名到字符串 - Java

在Java编程中,经常需要将类名转换为字符串。这是因为Java类名实际上是一个对象,而不是一个字符串。本文将介绍如何将Java类名转换为字符串。

使用 Class.getName() 来获取类名

Java中的每个类都有一个名称,可以使用 Class.getName() 方法来获取该名称。该方法返回一个字符串,其中包含完整的类名,包括包名和类名。

下面是一个示例代码:

public class MyClass {
    public static void main(String[] args) {
        String className = MyClass.class.getName();
        System.out.println(className); // 输出: MyClass
    }
}

在上面的示例中,我们使用 MyClass.class.getName() 来获取 MyClass 类的名称,并将其存储在 className 变量中。然后,我们使用 System.out.println() 方法打印 className 的值。

注意,Class.getName() 方法返回的是一个字符串,不包括 ".class" 后缀。

使用 Class.getSimpleName() 来获取类名

如果您只需要获取类的简单名称(也就是不包括包名的类名),则可以使用 Class.getSimpleName() 方法。

下面是一个示例代码:

public class MyClass {
    public static void main(String[] args) {
        String className = MyClass.class.getSimpleName();
        System.out.println(className); // 输出: MyClass
    }
}

在上面的示例中,我们使用 MyClass.class.getSimpleName() 来获取 MyClass 类的简单名称,并将其存储在 className 变量中。然后,我们使用 System.out.println() 方法打印 className 的值。

使用 Class.getCanonicalName() 来获取规范化类名

如果您需要获取类的规范化名称(也就是不包括内部类的完整类名),则可以使用 Class.getCanonicalName() 方法。

下面是一个示例代码:

public class MyClass {
    public static void main(String[] args) {
        String className = MyClass.class.getCanonicalName();
        System.out.println(className); // 输出: MyClass
    }
}

在上面的示例中,我们使用 MyClass.class.getCanonicalName() 来获取 MyClass 类的规范化名称,并将其存储在 className 变量中。然后,我们使用 System.out.println() 方法打印 className 的值。

使用 Class.getTypeName() 来获取泛型类名

如果您需要获取泛型类的名称(也就是包括泛型参数的完整类名),则可以使用 Class.getTypeName() 方法。

下面是一个示例代码:

import java.util.List;

public class MyClass {
    public static void main(String[] args) {
        String className = List.class.getTypeName();
        System.out.println(className); // 输出: java.util.List<E>
    }
}

在上面的示例中,我们使用 List.class.getTypeName() 来获取 List 泛型类的名称,并将其存储在 className 变量中。然后,我们使用 System.out.println() 方法打印 className 的值。

注意,泛型类名称的格式为 <类名><泛型参数>

总结

在Java编程中,可以使用以下方法之一来获取Java类的名称:

  • Class.getName() - 获取包括包名的完整类名
  • Class.getSimpleName() - 获取不包括包名的类名
  • Class.getCanonicalName() - 获取不包括内部类的完整类名
  • Class.getTypeName() - 获取包括泛型参数的完整类名

以上就是Java类名到字符串的介绍,希望对您有所帮助。