反射2.0

Posted 天庭保安猪八戒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射2.0相关的知识,希望对你有一定的参考价值。

1.获取指定的运行时类的具体对象;------newInstance();

①先获Class类(放射的源头)

②调用运行时类的newInstance();方法就可以获取到具体对象;-->获取运行时类时可以加泛型,后面就不用强转了

  注意:反射提供的这个方法其实还是调用了运行时类的空参构造方法,所有运行时类一定要提供一个空参构造方法,其构造方法的访问权限一定要够;

 

2.获取运行时类的属性-----getFields()

 

 ①因为属性需要具体的类,所以先创造Class类(反射的源头);

②调用getFields()----此方法获取的是当前类和父类中所有声明为public的方法返回到一个数组中

/调用getDeclareFields()----此方法获取的是当前类中的所有属性;

 

3.获取方法

 

 ①获取Class类(反射源头,运用反射需要创建)

②调用getMethods()---此方法获取的是当前类和其父类中所有声明为public的方法

/getDeclareMethods()---获取的是当前类的所有方法;

 

4.获取构造器

 

 ①还是获取class类;

②调用getconstructors方法,获取当前类中声明public的构造器(没有父类了,用不到)

/getDeclaredConstructors,获取所有构造器;

以上是关于反射2.0的主要内容,如果未能解决你的问题,请参考以下文章

初探反射

vary 菲涅尔反射参数

框架手写系列---通过反射手写EventBus框架

Java继承2.0

unity的C#学习——泛型的创建与继承泛型集合类泛型中的约束和反射

菲涅尔反射和镜面反射的区别,菲涅尔反射是镜面反射的一种嘛?