详解Java的getName()方法:返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称

  • Post category:Java

Java的Class类提供了多个方法,其中getName()方法用于获取类的全限定名。在本文中,我们将详细介绍getName()方法的使用,包括什么是类的全限定名、如何使用这个方法以及如何在代码中应用示例。

什么是类的全限定名?

类的全限定名是指包名加上类名。例如,”java.lang.String”表示Java标准库中的字符串类。类的全限定名通常用于在代码中引用这个类。

如何使用getName()方法?

getName()方法是从Class类继承而来的,在Java程序中获取对象的Class对象后即可调用这个方法。具体来说,使用方法如下:

// 获取对象的Class对象
Class<?> myClass = myObject.getClass();
// 调用getName()方法获取类的全限定名
String className = myClass.getName();

在代码块中,myObject是一个Java对象,Class<?>是Java的通配符类型,它意味着返回的Class对象可以是任何类型的。例如,如果我们有一个String类型的变量str,我们可以这样获取Class对象:

Class<?> stringClass = str.getClass();

类名称是在编译时使用的,在运行时是不会改变的。因此,在使用Java反射机制时,我们通常使用getName()方法获取类的全限定名并且利用这个全限定名来创建类的实例。这种方式可以使我们创建任何类型的对象,而不需要直接将相应的类名编写成硬编码。

如何在代码中使用示例?

下面是一个简单的示例,展示了如何在Java程序中使用getName()方法获取类的全限定名:

public class MyClass {
    public static void main(String[] args) {
        String str = "Hello World!";
        Class<?> stringClass = str.getClass();
        System.out.println("Full class name: " + stringClass.getName());
    }
}

在这个示例中,我们定义了一个String类型的变量str,调用了getClass()方法获取了Class对象,最后使用getName()方法获取类的全限定名。

另一个使用getName()方法的示例是在Java反射机制中使用它。假设我们有一个类com.example.MyClass,我们可以按照以下方式获取这个类的实例:

Class<?> myClass = Class.forName("com.example.MyClass");
Object myObject = myClass.newInstance();

在这个示例中,Class.forName()方法返回了Class对象,该对象表示具有指定名称的类或接口。然后,我们使用newInstance()方法创建myClass对象的一个新实例。

总结

在本文中,我们讨论了Java中getName()方法的用法。我们了解了全限定名的概念,介绍了如何使用Class对象和getName()方法获取类的全限定名,并提供了两个示例,说明了如何在Java程序中使用getName()方法。通过了解和使用这个方法,我们可以更好地理解Java的反射机制,并编写更灵活的代码。