java反射机制的应用
来源:互联网 发布:中新赛克是大数据公司 编辑:程序博客网 时间:2024/05/21 08:37
package reflect2;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;
/*
* java反射机制的应用
*
*/
public class TestReflect {
/**
* java提供反射机制
* 接口无法被实例化,必须手动控制具体实例化某个类
* 利用java的反射机制,向应用程序传递一个参数,让它自己去选择实例化一个类,执行它的
* act方法
* 编写一个配置文件emp.Properties
* #成功响应
* 1000=Success
* #向客户发送普通文本信息
* 2000=Load
* #客户向服务器发送普通文本信息
* 3000=Store
*
* 假如客户发送1000给我的消息头,那么就动态执行Success中的act方法,如果要添加新的
* 功能,只需在配置文件中添加对应规则,然后编写新的类,实现act方法,这样系统就具备了
* 良好的可扩展性和可插入性
*
*
*/
//加载配置文件,查询消息头对应的类名
private String loadProtocal(String header){
String result = null;
try{
Properties pro = new Properties();
//读取配置文件的信息
//FileInputStream fis = new FileInputStream("emp.properties");
InputStream is = TestReflect.class.getResourceAsStream("emp.properties");
//加载配置文件
pro.load(is);
result = pro.getProperty(header);
is.close();
}catch(Exception e){
}
return result;
}
//针对消息做出响应,利用反射导入对应的类
public String response(String header,String content){
String result =null;
String s = null;
try{
/**
*导入属性文件emp.properties,查询header所对应的类的名字
*
* 通过反射机制动态加载匹配的类,所有的类都被Operator接口隔离
*
* 可以通过修改属性文件和添加新的类来扩展应用
*
*/
//要实例化的具体类的类名
//具体的包名+要反射的类名
s = "reflect2."+this.loadProtocal(header);
//加载类
Class cls = Class.forName(s);
//创建类的实例
Operator mo =(Operator)cls.newInstance();
//构造参数列表
Class params[] = new Class[1];
params[0] = Class.forName("java.lang.String");
//查询act方法
Method m = cls.getMethod("act",params);
//invoke()方法中的第二个参数,act方法中赋值的具体值
Object args[] = new Object[1];
args[0] = content;
//调用方法并获得返回
//返回的returnObject是字符串类型
Object returnObject = m.invoke(mo, args);
result =(String)returnObject;
}catch(Exception e){
System.out.println("Hander-response"+e);
}
return result;
}
public static void main(String[] args){
TestReflect tr = new TestReflect();
String s1 =tr.response("1000","消息内容");
String s2 =tr.response("2000","消息内容");
System.out.println(s1);
System.out.println("-------------------------");
System.out.println(s2);
}
}
- JAVA反射机制的应用
- java反射机制的应用
- java反射机制的应用
- java 反射机制的应用
- java反射机制的应用
- Java反射机制应用
- java反射机制的常见应用
- JAVA反射机制的简单应用
- java 反射机制的一些应用
- java 反射机制的研究与应用
- JAVA反射机制的简单应用
- JAVA中反射机制的应用
- java反射机制的两个应用
- java 反射机制应用的封装
- Java中反射机制的应用
- Java反射机制的简单应用
- java反射机制的应用(转)
- JAVA反射机制的应用场景
- ibatis学习(一):ibatis初始及环境搭建
- JS对CHECKBOX的操作
- Excel开发(VBA)— 在Excel里自动添加工具栏
- Struts2使用validate方法验证数据
- 经济危机===>>丐帮也裁员!!!(各企业裁员统计)
- java反射机制的应用
- Hibernate的dynamic-insert与dynamic-update
- 技术pk基础
- C语言的字符串操作(例)
- c++中的string用法 一
- 不要迷失在技术的海洋中收藏
- Inside QT Series (三):对象数据存储(B)
- C++标准库string类型的操作总结
- 检测打印机并于指定打印机上打印