Java中class的getName和getCanonicalName两个方法的区别

Python012

Java中class的getName和getCanonicalName两个方法的区别,第1张

1、getName()返回的是虚拟机里面的class的表示

2、getCanonicalName()返回的是更容易理解的表示

总结:对于普通类来说,二者没什么区别,只是对于特殊的类型上有点表示差异

比如byte[]类型,前者就是[B,后者就是byte[]

比如byte[][]类型,前者就是[[B,后者就是byte[][]

没有getName,只有实例化对象.getClass().getName()获取class名称。例如:

String name = ""

name.getClass().getName()

Class.forName()是为了获取class的字节码,是映射。例如:

Class clazz = Class.forName("java.lang.String")

String newInstance = (String) clazz.newInstance()