最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 利用java反射機制動態(tài)加載類的簡單實現(xiàn)

 更新時間:2016年09月21日 07:41:08   投稿:jingxian  
下面小編就為大家?guī)硪黄猨ava 利用java反射機制動態(tài)加載類的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

如下所示:

////////////////// 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所對應
  *
  * 的類的名字 通過反射機制動態(tài)加載匹配的類,所有的類都
  *
  * 被Operator接口隔離 可以通過修改屬性文件、添加新的類(繼
  *
  * 承MsgOperator接口)來擴展協(xié)議
  */
  s = "org.bromon.reflect." + this.loadProtocal(header);
  // 加載類
  Class<?> c = Class.forName(s);
  // 創(chuàng)建類的事例
  Operator mo = (Operator) c.newInstance();
  
  // 構造參數(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);
  
  // 調用方法并且獲得返回
  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", "消息內容");
 }
}

以上就是小編為大家?guī)淼膉ava 利用java反射機制動態(tài)加載類的簡單實現(xiàn)的全部內容了,希望對大家有所幫助,多多支持腳本之家~

相關文章

  • Java Elastic Job動態(tài)添加任務實現(xiàn)過程解析

    Java Elastic Job動態(tài)添加任務實現(xiàn)過程解析

    這篇文章主要介紹了Java Elastic Job動態(tài)添加任務實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Java8中Lambda表達式的理解與應用

    Java8中Lambda表達式的理解與應用

    Java8最值得學習的特性就是Lambda表達式和Stream?API,如果有python或者javascript的語言基礎,對理解Lambda表達式有很大幫助,下面這篇文章主要給大家介紹了關于Java8中Lambda表達式的相關資料,需要的朋友可以參考下
    2022-02-02
  • Java concurrency之互斥鎖_動力節(jié)點Java學院整理

    Java concurrency之互斥鎖_動力節(jié)點Java學院整理

    本文通過示例代碼給大家介紹了Java concurrency之互斥鎖的相關知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • java String的intern方法

    java String的intern方法

    本文主要介紹java 中String 的intern方法,這里主要通過實例來說明不同版本的JDK,intern方法的對比,有需要的小伙伴可以參考下
    2016-07-07
  • Java中的JSONObject詳解

    Java中的JSONObject詳解

    這篇文章主要介紹了Java中的JSONObject詳解,需要的朋友可以參考下
    2025-04-04
  • Springboot如何通過流返回文件

    Springboot如何通過流返回文件

    這篇文章主要介紹了Springboot如何通過流返回文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • DOM解析XML報錯Content is not allowed in prolog解決方案詳解

    DOM解析XML報錯Content is not allowed in prolog解決方案詳解

    這篇文章主要介紹了DOM解析XML報錯解決方案詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Java8新特性之字符串去重介紹

    Java8新特性之字符串去重介紹

    這篇文章主要介紹了Java8新特性之字符串去重介紹,新的字符串去重特性可以幫助減少應用中String對象的內存占用,目前該特性只適用于G1垃圾收集器,并且默認不被開啟,需要的朋友可以參考下
    2014-09-09
  • Java關鍵字詳解之final static this super的用法

    Java關鍵字詳解之final static this super的用法

    this用來調用目前類自身的成員變量,super多用來調用父類的成員,final多用來定義常量用的,static定義靜態(tài)變量方法用的,靜態(tài)變量方法只能被類本身調用,下文將詳細介紹,需要的朋友可以參考下
    2021-10-10
  • java公眾平臺通用接口工具類HttpConnectUtil實例代碼

    java公眾平臺通用接口工具類HttpConnectUtil實例代碼

    下面小編就為大家分享一篇java公眾平臺通用接口工具類HttpConnectUtil實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01

最新評論

绥阳县| 海晏县| 吴江市| 宜宾县| 遵义市| 阳泉市| 来安县| 沾化县| 宣城市| 澎湖县| 道孚县| 留坝县| 武宁县| 甘泉县| 伊春市| 海丰县| 安泽县| 元江| 友谊县| 邢台县| 长沙县| 阜阳市| 保山市| 三亚市| 乐至县| 介休市| 柘城县| 绥化市| 铜陵市| 大港区| 永登县| 兴仁县| 平乡县| 林芝县| 平和县| 象州县| 栾川县| 德庆县| 罗平县| 康马县| 景泰县|