欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 利用java反射機(jī)制動(dòng)態(tài)加載類的簡(jiǎn)單實(shí)現(xiàn)

 更新時(shí)間:2016年09月21日 07:41:08   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇java 利用java反射機(jī)制動(dòng)態(tài)加載類的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

如下所示:

////////////////// 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;
 }

 // 針對(duì)消息作出響應(yīng),利用反射導(dǎo)入對(duì)應(yīng)的類
 public String response(String header, String content) {
 String result = null;
 String s = null;
 try {
  /*
  * 導(dǎo)入屬性文件emp.properties,查詢header所對(duì)應(yīng)
  *
  * 的類的名字 通過(guò)反射機(jī)制動(dòng)態(tài)加載匹配的類,所有的類都
  *
  * 被Operator接口隔離 可以通過(guò)修改屬性文件、添加新的類(繼
  *
  * 承MsgOperator接口)來(lái)擴(kuò)展協(xié)議
  */
  s = "org.bromon.reflect." + this.loadProtocal(header);
  // 加載類
  Class<?> c = Class.forName(s);
  // 創(chuàng)建類的事例
  Operator mo = (Operator) c.newInstance();
  
  // 構(gòu)造參數(shù)列表
  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);
  
  // 調(diào)用方法并且獲得返回
  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", "消息內(nèi)容");
 }
}

以上就是小編為大家?guī)?lái)的java 利用java反射機(jī)制動(dòng)態(tài)加載類的簡(jiǎn)單實(shí)現(xiàn)的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持腳本之家~

相關(guān)文章

  • JAVA應(yīng)用系統(tǒng)工具快捷托盤(pán)實(shí)例代碼

    JAVA應(yīng)用系統(tǒng)工具快捷托盤(pán)實(shí)例代碼

    JAVA應(yīng)用系統(tǒng)工具快捷托盤(pán)實(shí)例代碼,需要的朋友可以參考一下
    2013-02-02
  • java實(shí)現(xiàn)網(wǎng)上購(gòu)物車(chē)程序

    java實(shí)現(xiàn)網(wǎng)上購(gòu)物車(chē)程序

    這篇文章主要介紹了java實(shí)現(xiàn)網(wǎng)上購(gòu)物車(chē)程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • java Collection 之List學(xué)習(xí)介紹

    java Collection 之List學(xué)習(xí)介紹

    本篇文章小編為大家介紹,java Collection 之List學(xué)習(xí)介紹。需要的朋友參考下
    2013-04-04
  • 關(guān)于Java中使用jdbc連接數(shù)據(jù)庫(kù)中文出現(xiàn)亂碼的問(wèn)題

    關(guān)于Java中使用jdbc連接數(shù)據(jù)庫(kù)中文出現(xiàn)亂碼的問(wèn)題

    這篇文章主要介紹了關(guān)于Java中使用jdbc連接數(shù)據(jù)庫(kù)中文出現(xiàn)亂碼的問(wèn)題,默認(rèn)的編碼和數(shù)據(jù)庫(kù)表中的數(shù)據(jù)使用的編碼是不一致的,如果是中文,那么在數(shù)據(jù)庫(kù)中執(zhí)行時(shí)已經(jīng)是亂碼了,需要的朋友可以參考下
    2023-04-04
  • Servlet服務(wù)端實(shí)現(xiàn)原理詳解

    Servlet服務(wù)端實(shí)現(xiàn)原理詳解

    Servlet是Sun公司開(kāi)發(fā)動(dòng)態(tài)web的一門(mén)技術(shù),Sun公司在這些API中提供了一個(gè)接口叫做:Servlet,如果想開(kāi)發(fā)一個(gè)Servlet程序,只需要完成兩個(gè)小步驟:編寫(xiě)一個(gè)類,實(shí)現(xiàn)Servlet接口、把開(kāi)發(fā)好的Java類部署到web服務(wù)器中。但是你了解Servlet實(shí)現(xiàn)的原理嗎
    2022-07-07
  • java8新特性之Optional的深入解析

    java8新特性之Optional的深入解析

    這篇文章主要給大家介紹了關(guān)于java8新特性之Optional的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 詳解Spring 參數(shù)驗(yàn)證@Validated和@Valid的區(qū)別

    詳解Spring 參數(shù)驗(yàn)證@Validated和@Valid的區(qū)別

    這篇文章主要介紹了詳解參數(shù)驗(yàn)證 @Validated 和 @Valid 的區(qū)別,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 詳談Java枚舉、靜態(tài)導(dǎo)入、自動(dòng)拆裝箱、增強(qiáng)for循環(huán)、可變參數(shù)

    詳談Java枚舉、靜態(tài)導(dǎo)入、自動(dòng)拆裝箱、增強(qiáng)for循環(huán)、可變參數(shù)

    下面小編就為大家?guī)?lái)一篇詳談Java枚舉、靜態(tài)導(dǎo)入、自動(dòng)拆裝箱、增強(qiáng)for循環(huán)、可變參數(shù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Java實(shí)現(xiàn)解析JSON大文件JsonReader工具詳解

    Java實(shí)現(xiàn)解析JSON大文件JsonReader工具詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)解析JSON大文件的工具JsonReader使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • 關(guān)于Java中的mysql時(shí)區(qū)問(wèn)題詳解

    關(guān)于Java中的mysql時(shí)區(qū)問(wèn)題詳解

    這篇文章主要給大家介紹了關(guān)于Java中mysql時(shí)區(qū)問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論