1 package ClassTest.ClassFieldsTest;
2
3 import java.io.FileReader;
4 import java.io.IOException;
5 import java.lang.reflect.Constructor;
6 import java.lang.reflect.InvocationTargetException;
7 import java.lang.reflect.Method;
8 import java.util.Properties;
9
10 /**
11 * FileName: ReflectDemo06
12 * Author: lps
13 * Date: 2022/4/11 22:38
14 * Sign:刘品水 Q:1944900433
15 */
16 public class ReflectDemo06 {
17 public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
18 // Student s = new Student();
19 // s.study();
20
21 // Teacher t = new Teacher();
22 // t.teach();
23
24 /*
25 class.txt
26 className=XXX
27 methodName=XXX
28 */
29
30 //加载数据
31 Properties prop = new Properties();
32 FileReader fr = new FileReader("F:\\JavaCode\\class.txt");
33 //void load(InputStream inStream) 从输入字节流读取属性列表(键和元素对)。
34 //void load(Reader reader) 以简单的线性格式从输入字符流读取属性列表(关键字和元素对)。
35 prop.load(fr);
36 fr.close();
37
38 /*
39 className=ClassTest.ClassFieldsTest.Student
40 methodName=study
41 */
42 //String getProperty(String key) 使用此属性列表中指定的键搜索属性。
43 //String getProperty(String key, String defaultValue) 使用此属性列表中指定的键搜索属性。
44 String className = prop.getProperty("className");
45 String methodName = prop.getProperty("methodName");
46
47 //通过反射来使用
48 Class<?> c = Class.forName(className);//ClassTest.ClassFieldsTest.Student
49 Constructor<?> con = c.getConstructor();
50 Object obj = con.newInstance();
51 Method m = c.getMethod(methodName);//study
52 m.invoke(obj);
53
54
55
56 }
57 }
package ClassTest.ClassFieldsTest;
/**
* FileName: Teacher
* Author: lps
* Date: 2022/4/11 22:37
* Sign:刘品水 Q:1944900433
*/
public class Teacher {
public void teach() {
System.out.println("键盘敲烂 月薪过万");
}
}
package ClassTest.ClassFieldsTest;
/**
* FileName: Student
* Author: lps
* Date: 2022/4/11 22:36
* Sign:刘品水 Q:1944900433
*/
public class Student {
public void study() {
System.out.println("好好学习 天天向上");
}
}
className=ClassTest.ClassFieldsTest.Teacher
methodName=teach
![]()
![]()