JAVA中常用的反转类
java中长用的反转类主要有三个:Class、Method和Field。
这三者其实构成了面向对象的三个基本要素:类、方法和域。三者是一种组合关系,一个Class包含若干个Method和若干个Field。
通常,我们用到反转时的起点便是Class。有Class,可以获得对method以及field的access。 同时,需要知道的常识便是,java类都有一个Class对象,通过getClass()方法即可得到。
如 Class class = this.getClass();
之后可以获得参数等等
Field fields[] = class.getFields() 或 Field field = clsss.getField(String name);
还可动态生成方法: Method method = class.getMethod(String name,Class argumentsType[] );
此方法大有用途,我们可以根据传进来的方法名name以及参数类型动态地生成我们想要的函数名,从而形成对函数的按需调用。即,我们可以按照我们的需要传进来不同的函数名即参数类型,从而生成不同的函数,以致调用不同的函数。可以实现对函数的”多态”与按需调用。
相应的方法生产之后,以下代码便可 完成具体的方法的调用。方法映射,或是 函数映射 在spring等这些注入式框架中 用得很多。用过spring的人应该有体会。自己在开发一些 controller是 也都用得找。
同时,在抽象工厂 这种设计模式中,类反射 函数反射 都 大有用途。
当然,得到一个Class对象,还可以通过Class.forName(String name),其中,name必须是全名,或全称,如com.longway.President类。 此外,我们还应该想到Type类,与以上三者结合起来,可能会发挥很大作用。