標籤:get 類對象 test raw 指定 tco txt style 執行個體化
Service1.java
package reflection; public class Service1 { public void doService1(){ System.out.println("業務方法1"); }}
Service2.java
package reflection; public class Service2 { public void doService2(){ System.out.println("業務方法1"); }}
spring.txt(D:\spring)
class=reflection.Service1method=doService1
Test.java
package reflection; import java.io.File;import java.io.FileInputStream;import java.lang.reflect.Constructor;import java.lang.reflect.Method;import java.util.Properties; public class Test { @SuppressWarnings({ "rawtypes", "unchecked" }) public static void main(String[] args) throws Exception { //從spring.txt中擷取類名稱和方法名稱 File springConfigFile = new File("d:\\spring.txt"); Properties springConfig= new Properties(); springConfig.load(new FileInputStream(springConfigFile)); String className = (String) springConfig.get("class"); String methodName = (String) springConfig.get("method"); //根據類名稱建立類對象 Class clazz = Class.forName(className); //根據方面名稱,擷取方法 Method m = clazz.getMethod(methodName); //擷取構造器 Constructor c = clazz.getConstructor(); //根據構造器,執行個體化出對象 Object service = c.newInstance(); //調用對象的指定方法 m.invoke(service); }}
第六課 JAVA反射擷取對象屬性和方法(通過設定檔)