getClass().getCanonicalName()
在 Java 中,getClass()
方法是 Object
类的一个方法,因此它可用于 Java 中的任何对象。当你在对象上调用 getClass()
方法时,它返回该对象的 Class
对象,表示该对象的运行时类。
getCanonicalName()
是 Class
类的一个方法,它返回该类的全名。全名是指包括包名的完整类名。如果类位于默认包中,则只返回类名,不包括任何前缀。
以下是 getClass().getCanonicalName()
方法调用的步骤和意义:
- 获取对象的 Class 对象:
getClass()
方法返回调用它的对象的Class
对象。 - 获取类的全名:
getCanonicalName()
方法返回Class
对象的全名,即包括包名的类名。 - 用途:这种组合通常用于获取当前对象的确切类名,这对于日志记录、调试、反射操作等场景非常有用。
示例用法
javaObject obj = new MyClass();
String className = obj.getClass().getCanonicalName();
System.out.println(className); // 输出 MyClass 的完全限定名,例如 "com.example.MyClass"
在这个示例中,MyClass
是一个示例类,obj
是 MyClass
的一个实例。调用 getClass().getCanonicalName()
将返回 MyClass
的完全限定名,包括它的包名。
注意事项
- 如果类在默认包中,
getCanonicalName()
只返回类名。 - 如果类已经被卸载,
getCanonicalName()
可能返回null
。 - 在某些安全环境中,如果类名不能被确定,
getCanonicalName()
也可能抛出SecurityException
。
getClass().getCanonicalName()
是 Java 反射编程中一个非常有用的工具,它允许程序在运行时获取类型信息。