如下所示 :
////////////////////Lad.javapackage org.bromon.reflect; import Java.util.arrayList; importieren java.util.list; result.add (neuer String ("加载成功")); Rückgabeergebnis; }} //////////////////// Operator.javapackage org.bromon.reflect; import Java.util. Java.util.ArrayList; importieren java.util.list; public class Store implementiert Operator {@Override publiclist <?> ACT (Liste <?> Params) {// Todo automatisch generierte Methode Stubliste <string> result = new ArrayList <string> (); result.add (neuer String ("Store")); Rückgabeergebnis; }} ///////////////. success.javapackage org.bromon.reflect; import Java.util.list; importieren java.util.arrayList; öffentliche Klasse Erfolg implementiert Operator {@Override Public List <?> ACT <?> Params). result.add (neuer String ("操作成功")); Rückgabeergebnis; }} ///////////////////////// testreflect.javapackage org.bromon.reflect; import Java.io.FileInputStream; import Java.lang.Reflect.method; importieren java.util.util. 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 (Ausnahme e) {System.out.println (e); } Rückgabeergebnis; } // 针对消息作出响应, 利用反射导入对应的类 öffentliche String -Antwort (String -Header, String -Inhalt) {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 (); // 构造参数列表 Klasse <?> Params [] = neue Klasse [1]; Params [0] = class.forname ("java.util.list"); // 查询 act 方法 Methode M = C.GetMethod ("Act", Params); Liste <String> args = new ArrayList <string> (); args.add (Inhalt); // 调用方法并且获得返回 Objekt returnObject = M.Invoke (MO, Args); Liste <?> List = (list <?>) ReturnObject; System.out.println (list.get (0)); } catch (Ausnahme e) {System.out.println ("Handler-Response:" + e); } Rückgabeergebnis; } public static void main (String args []) {testreflect tr = new testreflect (); Tr.Response ("2000", "消息内容"); }}以上就是小编为大家带来的 Java 利用 Java 反射机制动态加载类的简单实现的全部内容了 , 希望对大家有所帮助 , 多多支持武林网 ~