程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java 應用java反射機制靜態加載類的簡略完成

java 應用java反射機制靜態加載類的簡略完成

編輯:關於JAVA

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反射機制靜態加載類的簡略完成的全體內容了,願望對年夜家有所贊助,多多支撐~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved