Java反射——获取Class对象

Java语言中的反射机制是一个对开发者很有用的机制,它可以帮助开发者设计出优越的框架,大大提高开发的效率。

反射机制的入口为Class对象,那如何才能获取到Class对象呢?
方法有以下三种:

  • 类.class
  • 对象.getClass()
  • Class.forName("className")

类.class

这种方式最直接,但仅能获取到我已知的类的Class对象,也就是工程内用过的类的对象都可以通过类.class方式获取其Class对象,但是这种方式有一个不足就是对于未知的类,或者说不可见的类是不能获取到其Class对象的。

对象.getClass()

Java中的祖先类Object提供了一个方法getClass()来获取当着实例的Class对象,这种方式是开发中用的最多的方式,同样,它也不能获取到未知的类,比如说某个接口的实现类的Class对象。

Class.forName("className")

这种方式是可以获取到任何类的Class对象,前提是该类存在,否则会抛出ClassNotFoundException异常。通过这种方式,我们只需要知道类的名称(完全限定名)即可获取到其Class对象(如果存在的话)。

你可能感兴趣的:(Java反射——获取Class对象)