Java 反射
来源:互联网 发布:网络协议实践 李毅超 编辑:程序博客网 时间:2024/05/14 20:19
普通我们new出一个对象后,就可以获取这个对象的类名等一系统属性情况,现在反过来处理,通过类名,去操作这个类对象。
在这之前,有必要介绍一下Class对象,Class对象是所有实例对象的模板,即实例对象是Class对象的实例,Class对象只有一个,它存储了类的所有信息。
看一个例子最好地介绍反射的特性了,看下面的代码吧:
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void print(){
System.out.println("name:"+name);
}
}
public class DemoTest {
public static void main(String[] args) throws Exception {
//任何对象都是Class对象
Class<?> per;
Object in;
per=Class.forName("com.rlf.Person");
System.out.println(per.getName());
//生成一个实例
in=per.newInstance();
//获得方法
Method method=per.getMethod("setName",new Class[]{String.class});
//调用方法
method.invoke(in, new Object[]{"gaofulai"});
Method print=per.getMethod("print",null);
print.invoke(in,null);
}
}
看到没有没,与JNI本地方法的写法基本相似哈!
- 【反射】JAVA反射机制
- JAVA 反射
- java 反射
- Java反射
- java反射
- java反射
- JAVA反射
- java 反射
- Java 反射
- java 反射
- Java反射
- java反射
- JAVA 反射
- java 反射
- Java反射
- java反射
- java 反射
- java 反射
- Win2003单网卡创建vpn连接
- tomcat无法正常启动
- spider技术综述
- chm TO html 另类方法
- php表单提交中sql提防注入攻击二
- Java 反射
- PythonChallenge 挑战之路 Level-8
- WordPress主题介绍:安装管理
- 汇编 二则运算
- 关于文字内容溢出用点点点(…)省略号表示
- 高可用开源方案 Keepalived VS Heartbeat对比
- g++ 链接*.a静态库 方法
- linux 释放内存
- jQuery选择器总结