Java反射实例
原文参考:
http://blog.csdn.net/sinat_38259539/article/details/71799078
①有两个提供服务的类ReflectService1,ReflectService2如下:
public class ReflectService1
{
public ReflectService1(){};
public void doService1(){
System.out.println("Do Service1.");
}
}
public class ReflectService2
{
public ReflectService2(){};
public void doService2(){
System.out.println("Do Service2.");
}
}
②有1个配置文件,指定Main方法中调用哪个服务的哪个方法:
class=ReflectService2
method=doService2
③主类ReflectMain中读取配置文件的配置,然后进行方法调用:
import java.io.File;
import java.io.FileInputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Properties;
public class ReflectMain
{
public static void main(String args[]){
File springConfFile = new File("F:\\Learn\\Java\\workspace\\spring\\ReflectTest\\src\\spring.properties");
Properties springConf = new Properties();
try
{
springConf.load(new FileInputStream(springConfFile));
//获取配置文件中配置的类
String className = (String)springConf.get("class");
System.out.println("className: " + className);
//获取配置文件中配置的方法
String method = (String)springConf.get("method");
System.out.println("method: " + method);
//获取到对应的类对象
Class clazz = Class.forName(className);
//Class cla = ReflectMain.class;
System.out.println("clazz name: " + clazz.getName());
//获取到该类对象下的对应方法
Method m = clazz.getMethod(method, null);
System.out.println("method name: " + m.getName());
//通过类对象获取构造器
Constructor c = clazz.getConstructor(null);
System.out.println("constructor name: " + c.getName());
//通过构造器构造新的对象实例
Object o = c.newInstance(null);
System.out.println("object name: " + o.toString());
//调用对象实例的方法
m.invoke(o,null);
}catch(Exception e){
e.printStackTrace();
}
}
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
API开创基底细胞癌手术切缘采集,改善过度医疗现状
做为一个医学硕士,曾拥有8年临床医生工作经验,在医院工作时的一件小事让我想明白了一件事:医学应该是个信仰,不该是个职业。 医疗行业对人类这么重要,信息化却这么落后,自己恰好有这方面的能力,也有意愿去提供这样的技术支持。因此我也写了几篇论文,但在我看来没有实际行动的理论,不过就是一堆垃圾。 不经意间的一个机会,开始全心投入医疗技术的研发中,刚开始围绕全套的业务流程有手术预约、数据管理、术后随访,对接了HIS、PACS、LIS,当时医院是内外网分离的,针对多个院区,还做了内外网和异地办公室的数据互通。在当时最大的难点是安装部署,其他医院想使用却用不起来,从院内政策到人员的精力都限制了项目的实施。 其他医院根据业务和使用规模大多需要项目的部分功能,为此不得不将项目拆分,各个模块弹性组合,这样分散式的持续了一段时间,但使用中参与数据录入
-
下一篇
Java多线程实例
Thread类的构造方法:public Thread( );public Thread(Runnable target);public Thread(String name);public Thread(Runnable target, String name);public Thread(ThreadGroup group, Runnable target);public Thread(ThreadGroup group, String name);public Thread(ThreadGroup group, Runnable target, String name);public Thread(ThreadGroup group, Runnable target, String name, long stackSize); Runnable target实现了Runnable接口的类的实例。要注意的是Thread类也实现了Runnable接口,因此,从Thread类继承的类的实例也可以作为target传入这个构造方法。 String name线程的名子。这个名子可以在建立Thr...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,CentOS7官方镜像安装Oracle11G
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程