类反射学习(二)JAVA开发框架底层思想演示,以及类反射的应用
来源:互联网 发布:驾校预约考试软件 编辑:程序博客网 时间:2024/05/17 02:58
类反射有什么用呢? 就是可以在实际项目中框架不变,通过改变配置文件,从而改变功能的调用。
简单来说: 保持接口,工厂方法,不变,新增实现类(功能)。通过读取配置文件。从而达到调用新功能的目的
接口: USB 就一个work() 函数
public interface USB { public abstract void work();}
实现类 有两个
public class USBCalling implements USB{ @Override public void work() { System.out.println("手机在通话---"); }}
public class USBElectricize implements USB{ @Override public void work() { System.out.println("手机在充电---"); }}
工厂方法: 因为还没学XML技术 所有先用 Properties
public class USBfactory { private USBfactory(){ } public static USB getUSB(){ USB usb = null; try { Properties p = new Properties(); // 找配置文件必须要找bin目录下的 FileInputStream fin = new FileInputStream(".\\bin\\dage\\hello\\Demo2\\factory\\usb.config"); p.load(fin); String name = p.getProperty("name"); Class c = Class.forName(name); usb = (USB) c.newInstance(); } catch (Exception e) { e.printStackTrace(); } return usb; }}
当配置文件内容如下时 调用第一个实现类
(#号表示忽略)
name=dage.hello.Demo2.Impl.USBCalling#name=dage.hello.Demo2.Impl.USBElectricize
结果为
改变配置文件其他内容不变
#name=dage.hello.Demo2.Impl.USBCallingname=dage.hello.Demo2.Impl.USBElectricize
调用了 第二个实现类
0 0
- 类反射学习(二)JAVA开发框架底层思想演示,以及类反射的应用
- 类反射学习(一)---Java类反射技术底层思想演示学习
- JAVA反射机制深入学习(二)实例演示JAVA反射机制的应用
- 框架底层的类反射机制
- 反射:Class类、反射概念、类中各成员的反射、反射的应用、数组的反射、框架
- java中的反射(学习框架的基础)(二)
- Java反射(二)利用反射分析类的能力
- java反射学习(二)--得到类的信息
- java反射技术的应用(二)
- Java反射的高级应用,模拟开发环境IDE动态搜索类成员以及方法,。。。。。
- Java 反射学习(二)成员变量的反射
- java--类反射(二)
- java学习(6) java反射以及应用
- Java反射(二):反射的使用
- JAVA反射(二):通过反射获取类的结构
- Java反射的简明应用-反射工具类
- java 高新技术【6】 反射开发框架以及用 类加载器 管理资源和配置文件
- java 高新技术【6】 反射开发框架以及用 类加载器 管理资源和配置文件
- 更改iPhone手机铃声详细教程(简单易学,无需付费软件)!
- java父类子类中静态块非静态块构造方法的执行顺序和继承
- httpd的配置详解(二)
- cocos2dx打包到andoird机前的准备
- ubuntu14.04系统清理
- 类反射学习(二)JAVA开发框架底层思想演示,以及类反射的应用
- 实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署
- Android中继承TextView实现文字的跑马灯效果
- POJ
- C++——NOIP模拟题——cheer
- openvSwtich学习(1)—— 源代码安装openvSwitch
- Spring AOP 实现功能权限校验功能
- P4 2017峰会前奏曲——P4培训会 | 北京站邀请函
- Cannot mix incompatible Qt library (version 0x40806) with this library (version 0x40807)