如下所示 :
///////////////// load.javapackage org.bromon.reflect; import java.util.arraylist; import java.util.list; Operador de implementos de carga de clase pública {@Override Public List <?> Act (Lista <?> Params) {// // TOD ArrayList <String> (); resultado.Add (nueva cadena ("加载成功")); resultado de retorno; }} /////////////////// operator.javapackage org.bromon.reflect; import java.util.*; Operator de interfaz pública {Lista pública <?> Act (List <?> Params);} /////////// Store.Javapackage Org.Bromon.reflect; java.util.arrayList; import java.util.list; el operador de la tienda de clases públicas implementa el operador {@Override public List <?> Act (List <?> Params) {// TODO Método Generado Autorgenerado Lista de stub <String> Result = New ArrayList <String> (); resultado.Add (nueva cadena ("tienda")); resultado de retorno; }} /////////////// exitoso.javapackage org.bromon.reflect; import java.util.list; import java.util.arrayList; public class Success Implements Operator {@Override Public List <?> Act (Lista <?> Params) {// ToDo Auto Generated Method de Stub STUB STUB Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Spter Stub Spt Spt Spt Stub Stub Spter Stub Spet Stub Stub Stut St Wub Aut Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Spet Metwer Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Stub Sphy ArrayList <String> (); resultado.Add (nueva cadena ("操作成功")); resultado de retorno; }} ////////////////////// testreflect.javapackage org.bromon.reflect; import java.io.fileinputstream; import java.lang.reflect.method; import java.util.arraylist; import java.util.properties; TestReflect {private String LoadProtocal (encabezado de cadena) {String result = null; intente {Propiedades prop = new Properties (); FileInputStream fis = new FileInputStream ("emp.properties"); Prop.Load (FIS); resultado = prop.getProperty (encabezado); fis.close (); } catch (Exception e) {System.out.println (e); } resultado de retorno; } // 针对消息作出响应, 利用反射导入对应的类 Public String Response (encabezado de cadena, contenido de cadena) {string dultin = null; Cadena s = nulo; Pruebe { / * * 导入属性文件 emp.properties, 查询 encabezado 所对应 * * 的类的名字 通过反射机制动态加载匹配的类, 所有的类都 * * 被 operador 接口隔离 可以通过修改属性文件、添加新的类 (继 * * 承 msgoperator 接口) 来扩展协议 * / s = "org.bromon.reflect". + this.loadprotocal (encabezado); // 加载类 clase <?> C = class.forname (s); // 创建类的事例 Operador Mo = (Operador) C.Newinstance (); // 构造参数列表 Clase <?> Params [] = nueva clase [1]; params [0] = class.forname ("java.util.list"); // 查询 Act 方法 Método M = C.getMethod ("ACT", Params); Lista <String> args = new ArrayList <String> (); args.Add (contenido); // 调用方法并且获得返回 Objeto returnObject = m.invoke (mo, args); List <?> List = (list <?>) ReturnObject; System.out.println (list.get (0)); } catch (Exception e) {System.out.println ("Handler-Response:" + E); } resultado de retorno; } public static void main (string args []) {testReflect tr = new testReflect (); tr.Response ("2000", "消息内容"); }}以上就是小编为大家带来的 java 利用 java 反射机制动态加载类的简单实现的全部内容了 , 希望对大家有所帮助 多多支持武林网 ~