美文网首页
学习笔记 | JAVA的反射(二)

学习笔记 | JAVA的反射(二)

作者: 发光吧 | 来源:发表于2018-09-09 22:52 被阅读0次

    利用反射机制动态加载类 、获取类的方法、获取类的属性

    编译时刻加载类是静态加载类,运行时加载类是动态加载类

    正常创建对象 静态:

    A a = new A();

    利用反射创建对象 动态:

    A类实现X接口

    Class c1 = Class.forName(“xxx.A”);

    X a = (X) c1.newInstence();

    Class c = Class.forName(“xxx.xxx”);

    c.getName();//类名称(基本的数据类型 void关键字都存在类类型 无包名)

    c.getNAme();//不带包名的类名称

    java.lang.reflect.Method //方法对象

    Method[] ms = c.getMethods();// 获取的是所有public的函数,包括从父类继承的

    Method[] ms = c.getDeclaredMethods();//获取该类所有自己声明的方法 不问访问权限

    ms[i].getName();//获取方法名

    Class returntype = ms[i].getReturnType();//获取返回值类型的类类型

    Class[] paramTypes = ms[i].getParameterTypes();//获取参数列表类型的类类型

    java.lang.reflect.Field //成员变量对象

    Field[] fs = c.getFields(); //所有public的成员变量

    c.getDeclaredFields();//获取所有自己声明的成员变量

    Class fieldType = fs[i].getType();//成员变量类型的类类型,通过它可以获取其类型相关信息

    java.lang.reflect.Constructor //构造函数的对象

    Constructor[] cs = c.getConstrunctors();//获取public构造方法

    c.getDeclaredConstructors();//获取自己声明的全部构造方法

    获取Class的对象,即类类型后,就可以获取很多信息了,比如说父类,接口等,参考API。

    相关文章

      网友评论

          本文标题:学习笔记 | JAVA的反射(二)

          本文链接:https://www.haomeiwen.com/subject/pfqjgftx.html