欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 反射,Java reflect,

来源: javaer 分享于  点击 36166 次 点评:139

Java 反射,Java reflect,


reflect是Java开发语言特征之一,在lang包下;它允许运行中的Java程序对自身进行检测。并能直接操作程序内部的属性。

import java.lang.reflect.Field;   
public class extendsTest {
public static void main(String[] args) throws Exception{
//四种获得Class的方法
Class clazz = java.lang.String.class;
Class clazz2 = Class.forName("java.lang.String");
Class clazz3 = Parent.class.getClass();
Class clazz4 = Integer.TYPE;

//1. 获得Class对象 2.对象操作 
Class clazzParent = Parent.class;
Parent parent = new Parent();
Field field = clazzParent.getDeclaredField("name");
field.setAccessible(true); //取消安全检查
field.set(parent, "李四");
System.out.println(parent.getName());
}
}
class Parent{
private String name="张三";
public String getName(){
return this.name;
}

}




reflect允许在程序创建和控制人和对象(根据安全性,可以忽略安全性:setAccessible(true)),无需提前编码目标对象。在存储对象数据库中、XML、及外部框架比较常用。

reflect 两个缺点:(1) 性能上比实际编写的代码要慢 (2) 使用反射会模糊实际代码内部要发生的事情

更多相关反射知识参考:http://wenku.baidu.com/view/472725fff705cc17552709f3.html

相关文章

    暂无相关文章
相关栏目:

用户点评