java反射机制
来源:互联网 发布:申请淘宝卖家账号 编辑:程序博客网 时间:2024/05/12 18:16
1.Java在运行期就可以知道对象所属的类,可以构造任意类的对象,判断任意对象的属性方法,可以在运行期调用任意对象的方法。
2.动态语言:开发者社区认为:程序运行时允许改变程序结构或变量类型,这种语言成为动态语言,c++,java,c#不是动态,java虽不是动态语言、但却有Reflection,“反射。映像、倒影”
Java可以加载一个在运行时才可以知道名称的class,获悉其完整构造,并生成对象等的能力被称为introspection(“内省、內观、反省”)与反射式两个并提的术语
3不管java中一个类有多少个对象、但这些对象只对应于同一个Class对象。
4.首先获得class对象(三种1.Demo.class2.forName(com.test.Demo)3. getClass()方法),用newInstance获得class对象的实例classType,classType调用getmethod()方法获得方法实例addMethod,
addMethod调用invoke方法传值获得方法调用。
Class<?>classType=InvokeTester.class;
ObjectinvokeTester=classType.newInstance();
Method addMethod=classType.getMethod("add",new Class[]{int.class,int.class});
Object result=addMethod.invoke(invokeTester,new Object[]{1,2});
一个类对应一个class对象,一个方法对应一个method对象。
可变参数一定是最后一个。所以一个方法最多一个可变参数。
5.要想使用反射,必须先
6.若想通过类的不带参数的构造方法来生成对象。两种方法:
a)先获得class对象,通过该对象的newInstance()方法
Class<?> clazz=String.class;
Objectobj=clazz.newInstance();
b)先获得class对象,然后通过对应的Constructor对象,再通过该Constructor随想的newInstance()方法生成
Class<?> clazz=Customer.class;
Constructorcons=clazz.getConstructor(new Class[]{});
Objectobj=cons.newinstance(new Object[]{});
Java.lang.Array类:
7.Integer.Type与Integer.Class/前者返回原生类型int、后者是返回真正的类。
Method.setAccessible(true);可以用来压制java默认的格式,使反射机制可以调用私有方法。
- 【反射】JAVA反射机制
- 【Java】JAVA反射机制
- Java 反射机制[Field反射]
- Java 反射机制[Method反射]
- Java反射机制笔记-反射机制
- java的反射机制
- Java的反射机制
- java反射机制详解!
- Java反射机制
- Java的反射机制
- java 反射机制--侯捷
- java反射机制
- java反射机制
- [候捷]Java反射机制
- java 反射机制
- java 反射机制初探
- 关于Java反射机制
- java反射机制
- Windows下不能启动mysql服务--错误总结
- CSS图片自适应容器大小
- 人生中最不浪漫的事
- Window7 NDK环境搭建(我是菜鸟)
- 浅析Mysql的my.ini文件
- java反射机制
- 用vc制作带密码检验功能的登录界面 MFC
- Weblogic发生PermGen区OOM问题的常见原因及对策
- 去掉VS c++项目中的sdf,iph,pch文件
- Python中的SET集合操作
- MiniGUI消息发送与处理
- 一封延迟的回复——自学和考研
- 关于页面编码一点小结
- 《君生我未生,我生君已老》详解