Java中类名.class和对象.getclass有什么区别?

如题所述

类名.class 的方式更加安全,例如当你要获取一个接口的class时,可以使用 类名.class 的方式获取
但此时就不能通过 对象.getClass 的方式获取了,因为接口是没有实例对象的,接口只有实现类对象,通过这种方式获取到的是接口的实现类的class,而非是接口的class
再者就是对象声明的类型未必是对象本身真正的类型,通过对象获取class容易产生混乱,因此尽量使用更加安全的方式
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-11
类名.class //通过类名获取类型类
对象.getClass() // 通对象获取类型类
两者返回的结果是一样的,只是通不同的方式。追问

第一种不是会返回一个对象吗

追答

是的,是这个类的类型对象,
两者的功能是一样的

追问

为什么网上说是字节码对象呢

追答

叫字节码对象也可以,只是称呼不一样,
你看他们的返回类型是一样的,都是 Class。

本回答被提问者采纳
第2个回答  2018-01-11
可那是修饰类,然后后面一个就是获取一个修饰类…
相似回答