Java--反射与配置文件小练习
一、需求:通过加载配置文件,并利用反射运行配置文件中指定类的对应方法
二、具体实现:
现有一个Person类,如下:
public class Person {
private String name;
private int age;
public Person() {
}
Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("name:"+this.name+"-->"+this.age);
}
}
为了方便,此处使用class.txt文件来代替配置文件。
className = study01.Person
methodName = sayHello
测试如下:
public class Test {
public static void main(String[] args) throws Exception {
//创建配置文件实例
Properties prop = new Properties();
//加载配置文件
FileInputStream is = new FileInputStream("src/study01/class.txt");
prop.load(is);
//加载需要运行的类名和方法名
String className = prop.getProperty("className");
String menthodName = prop.getProperty("methodName");
//创建Class对象
Class c = Class.forName(className);
//获取构造方法
Constructor con = c.getDeclaredConstructor(String.class, int.class);
//创建实例
Object obj = con.newInstance("跑调大叔", 20);
//获取需要运行的Method对象
Method m = c.getDeclaredMethod(menthodName);
//运行方法
m.invoke(obj);
}
}
测试结果如下:
现在如果需要运行不同类以及不同类中的方法时,只需要更改配置文件中的键值对即可。
Java新手,若有错误,欢迎指正!
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个 java 空指针异常的解决过程
· 揭开 SQL Server 和 PostgreSQL 填充因子的神秘面纱
· 没有调度器的协程不是好协程,零基础深入浅出 C++20 协程
· 别做抢活的导演:代码中的抽象层次原则
· 从 Redis 客户端超时到 .NET 线程池挑战
· 会Vibe Coding的同事:我一个人干掉整个技术部!
· dotnetty 内存泄漏的BUG修复了
· 20250709 - GMX V1 攻击事件: 重入漏洞导致的总体仓位价值操纵
· 线上问题定位神器:Arthas
· Apipost 的AI功能真的还不错啊!建议后端开发和测试人员了解