
反射
空你个指针啊
别忘了你的星辰大海
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA反射
万物皆对象类是java.lang.Class类的实例对象任何一个类都是Class的实例对象,这个实例对象有三种表示方式(类类型/class type):第一种: Class c1 = Foo.class //Foo是自定义类,每一个类都有一个隐含的静态成员变量class第二种: Class c2 = foo1.getClass() //通过对象的getClass()第三种:try{原创 2017-03-09 13:45:19 · 298 阅读 · 0 评论 -
JAVA反射的作用
JAVA反射的作用获取某个对象的属性得到某个类的静态属性执行某个对象的方法执行某个类的静态方法新建实例判断是否为某个类的实例得到数组中的某个元素调用类中的private方法//method.setAccessible(true);原创 2017-03-09 13:45:55 · 288 阅读 · 0 评论 -
JAVA反射的基本操作
方法的反射1)如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法2)方法反射的操作 method.invoke(对象,参数列表)Class A{ public void print(int a, int b){ ... } public void print(String a, String b){ ... }}原创 2017-03-09 13:46:41 · 239 阅读 · 0 评论 -
JAVA获取类的方法
JAVA获取方法信息在类里声明的返回值类型、基本数据类型等有.class方法,获取类的类类型,如:int.class、String.class、double.class、void.class等获取类的全部信息://jni本地方法,java声明,C实现//要获取类的信息,首先要获取类的类类型Class c = obj.getClass(); //获取类名称c.getName()//Met原创 2017-03-09 13:47:18 · 528 阅读 · 0 评论 -
JAVA动态加载类
动态加载类Class.forName(“类的全称”) 不仅表示了类的类类型,还代表了动态加载类编译时刻加载类似静态加载类、运行时刻加载类是动态加载类new 创建对象是静态加载类,在编译时刻就要加载所有可能用到的类通过动态加载类可解决编译时的问题 //动态加载类,在运行时刻加载 Class c = Class.forName(args[0]); //通过类类型,创建该类对象 On原创 2017-03-09 13:48:22 · 285 阅读 · 0 评论 -
JAVA反射获取成员变量构造函数信息
获取成员变量构造函数信息成员变量也是对象java.lang.reflect.FieldField类封装了关于成员变量的操作getFields()方法获取的是所有的public的成员变量的信息getDeclaredFields获取的是该类自己声明的成员变量的信息获取成员变量信息:Class c = obj.getClass();Field[] fs = c.getDeclaredFiel原创 2017-03-09 13:49:22 · 366 阅读 · 0 评论 -
JAVA通过反射了解集合泛型本质
通过Class,Method来认识泛型的本质反射的操作都是编译之后的操作编译之后集合的泛型是去泛型化的Java中集合的泛型,是防止错误输入的,只在编译阶段有效,绕过编译就无效了可通过方法的反射来绕过编译ArrayList list = new ArrayList();list1.add("hello");Class c1 = list.getClass();try{ Method原创 2017-03-09 13:50:18 · 386 阅读 · 0 评论