getClass()
和 getName()
是Java中两个与反射(reflection)相关的方法,它们提供了关于对象或类的信息。
-
getClass()
getClass()
方法是从Object
类继承而来的,用于返回一个对象的运行时类(Runtime Class)。它的定义如下:public final Class<?> getClass()
返回的结果是一个
Class
对象,它包含了与对象所属的类相关的信息,比如类名、父类、接口等等。通过Class
对象,你可以在运行时获取类的各种信息。例如:
MyClass obj = new MyClass(); Class<?> clazz = obj.getClass(); System.out.println(clazz.getName()); // 输出类名
-
getName()
getName()
方法是Class
类中的一个方法,用于获取类的全限定名,也就是包括包名在内的类名。public String getName()
这个方法返回一个
String
,其中包含了类的全名。例如:
Class<?> clazz = MyClass.class; System.out.println(clazz.getName()); // 输出类的全名,比如 "com.example.MyClass"
getName()
方法通常用于获取类的名字,可以在反射等场景中非常有用。
总结起来,getClass()
返回一个 Class
对象,你可以通过它获取到关于类的各种信息,而 getName()
是 Class
类中的一个方法,用于获取类的全名(包括包名)。
需要注意的是,这两个方法经常在反射、动态加载类等场景下使用,它们使得你能够在运行时获取类的信息,从而做一些灵活的操作。