java 應用java反射機制靜態加載類的簡略完成。本站提示廣大學習愛好者:(java 應用java反射機制靜態加載類的簡略完成)文章只能為提供參考,不一定能成為您想要的結果。以下是java 應用java反射機制靜態加載類的簡略完成正文
以下所示:
////////////////// Load.java package 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.java package org.bromon.reflect; import java.util.*; public interface Operator { public List<?> act(List<?> params); } /////////////Store.java package 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.java package 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.java package 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反射機制靜態加載類的簡略完成的全體內容了,願望對年夜家有所贊助,多多支撐~