国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java 利用java反射機制動態加載類的簡單實現

2019-11-26 13:48:30
字體:
來源:轉載
供稿:網友

如下所示:

////////////////// Load.javapackage org.bromon.reflect;import java.util.ArrayList;import java.util.List;public class Load implements Operator { @Override public List<?> act(List<?> params) { // TODO Auto-generated method stub List<String> result=new ArrayList<String>(); result.add(new String("加載成功")); return result; }}/////////////////// Operator.javapackage org.bromon.reflect;import java.util.*;public interface Operator { public List<?> act(List<?> params);}/////////////Store.javapackage org.bromon.reflect;import java.util.ArrayList;import java.util.List;public class Store implements Operator { @Override public List<?> act(List<?> params) { // TODO Auto-generated method stub List<String> result=new ArrayList<String>(); result.add(new String("Store")); return result; }}///////////////Success.javapackage org.bromon.reflect;import java.util.List;import java.util.ArrayList;public class Success implements Operator { @Override public List<?> act(List<?> params) { // TODO Auto-generated method stub List<String> result=new ArrayList<String>(); result.add(new String("操作成功")); return result; }}////////////////////////TestReflect.javapackage org.bromon.reflect;import java.io.FileInputStream;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Properties;import java.util.List;public class TestReflect { private String loadProtocal(String header) { String result = null; try {  Properties prop = new Properties();  FileInputStream fis = new FileInputStream("emp.properties");  prop.load(fis);  result = prop.getProperty(header);  fis.close(); } catch (Exception e) {  System.out.println(e); } return result; } // 針對消息作出響應,利用反射導入對應的類 public String response(String header, String content) { String result = null; String s = null; try {  /*  * 導入屬性文件emp.properties,查詢header所對應  *  * 的類的名字 通過反射機制動態加載匹配的類,所有的類都  *  * 被Operator接口隔離 可以通過修改屬性文件、添加新的類(繼  *  * 承MsgOperator接口)來擴展協議  */  s = "org.bromon.reflect." + this.loadProtocal(header);  // 加載類  Class<?> c = Class.forName(s);  // 創建類的事例  Operator mo = (Operator) c.newInstance();    // 構造參數列表  Class<?> params[] = new Class[1];  params[0] = Class.forName("java.util.List");    // 查詢act方法  Method m = c.getMethod("act", params);  List<String> args = new ArrayList<String>();  args.add(content);    // 調用方法并且獲得返回  Object returnObject = m.invoke(mo, args);  List<?> list=(List<?>)returnObject;  System.out.println(list.get(0)); } catch (Exception e) {  System.out.println("Handler-response:" + e); } return result; } public static void main(String args[]) { TestReflect tr = new TestReflect(); tr.response("2000", "消息內容"); }}

以上就是小編為大家帶來的java 利用java反射機制動態加載類的簡單實現的全部內容了,希望對大家有所幫助,多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汤原县| 张家界市| 黄山市| 太康县| 华亭县| 克什克腾旗| 合作市| 环江| 西安市| 荥经县| 额尔古纳市| 菏泽市| 湟源县| 博湖县| 穆棱市| 吉林省| 本溪市| 嘉善县| 永胜县| 开远市| 聊城市| 星子县| 蒙阴县| 迭部县| 桓仁| 广南县| 淮南市| 黑河市| 绥江县| 泰来县| 六盘水市| 城固县| 德州市| 开封市| 绥宁县| 彝良县| 沂源县| 连城县| 赤城县| 赞皇县| 西贡区|