如下所示 :
////////////////// Load.javapackage 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 (string baru ("加载成功")); hasil pengembalian; }} //////////////////////////////////////////////Operator.javapackage org.bromon.reflect; import java.util.*; Operator antarmuka publik {daftar publik <?> Daftar <?> Params);} ///////////////javapack <?> Params);} //////////////javapack java.util.arraylist; import java.util.list; toko kelas publik mengimplementasikan operator {@override Daftar publik <?> Act (Daftar <?> Params) {// TODO Metode Stub yang Dibebaskan Auto <string> Hasil = ArrayList baru <string> (); result.add (string baru ("toko")); hasil pengembalian; }}///////////////Success.javapackage 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 (string baru ("操作成功")); hasil pengembalian; }} //////////////////////// testreflect.javapackage org.bromon.reflect; import java.io.fileinputStream; import java.lang.reflect.method; impor java.util.raylist; java.util.list; kelas publik testReflect {private string loadProtocal (header string) {string result = null; coba {properties prop = properti baru (); FileInputStream fis = FileInputStream baru ("emp.properties"); prop.load (FIS); hasil = prop.getProperty (header); fis.close (); } catch (Exception e) {System.out.println (e); } hasil pengembalian; } // 针对消息作出响应, 利用反射导入对应的类 respons string publik (header string, konten string) {string result = null; String s = null; coba { / * * 导入属性文件 emp.properties, 查询 header 所对应 * * 的类的名字 通过反射机制动态加载匹配的类, 所有的类都 * * 被 operator 接口隔离 可以通过修改属性文件、添加新的类 可以通过修改属性文件、添加新的类 (继 * * 承 msgoperator 接口) 来扩展协议 * / s = "org.bromon.reflect." + this.loadprotocal (header); // 加载类 kelas <?> C = class.forname (s); // 创建类的事例 operator mo = (operator) c.newinstance (); // 构造参数列表 kelas <?> Params [] = kelas baru [1]; params [0] = class.forname ("java.util.list"); // 查询 ACT 方法 Metode m = C.GetMethod ("Act", params); Daftar <String> args = new ArrayList <String> (); args.add (konten); // 调用方法并且获得返回 objek returnObject = m.invoke (mo, args); Daftar <?> Daftar = (Daftar <?>) ReturnObject; System.out.println (list.get (0)); } catch (Exception e) {System.out.println ("Handler-Response:" + e); } hasil pengembalian; } public static void main (string args []) {testReflect tr = new testReflect (); Tr.Response ("2000", "消息内容"); }}以上就是小编为大家带来的 Java 利用 Java 反射机制动态加载类的简单实现的全部内容了 , 希望对大家有所帮助 , 多多支持武林网 ~