Java反射机制是一个异常强大年夜的功能,在很多大年夜型项目比如Spring, Mybatis中都可以看见反射的身影。经由过程反射机制我们可以在运行时代获取对象的类型信息,应用这一特点我们可以实现工厂模式和代劳模式等设计模式,同时也可以解决Java泛型擦除等令人忧?的问题。本文我们就大年夜实际应用的角度出发,来竽暌功用一下Java的反射机制。
模仿Spring中的Advice接口:
在单位测试框架比如Junit中反射机制也获得了广泛的应用,即经由过程注解的方法。下面我们简单地来懂得一下若何经由过程反射机制来获取相干办法的注解信息,比如说我们有下面如许一个营业场景,当用户在修改本身暗码的时刻,为了包管暗码的安然性,我们请求用户的新暗码要知足一些前提,比如说至少要包含一个非数字字符,不克不及与以前的暗码雷同之类的前提等。
- public interface Advice {
- public void before();
- public void after();
- }
实现TimeAdvice用于统计法度榜样的履行时光:
- public class TimeAdvice implements Advice {
- long startTime;
- long endTime;
- @Override
- public void before() {
- startTime = System.nanoTime(); // 获取开端时光
- }
- @Override
- public void after() {
- endTime = System.nanoTime(); // 获取停止时光
- }
- }
经由过程getClass办法
客户端调用代码如下:
- public class Client {
- public static void main(String[] args) {
- SimpleProxy = new SimpleProxy();
- SalaryInterface salaryInterface =
- (SalaryInterface) simpleProxy.bind(new Salary(), new TimeAdvice());
- salaryInterface.doSalary();
- }
- }
如不雅我们如今须要新增权限控制,我们来实现ControlAdvie类:
- public class ControlAdvice implements Advice {
- @Override
- public void before() {
- if (...) {
- ...
- } else {
- ...
- }
- }
- @Override
推荐阅读
常见用法: netstat –npl 可以查看你要打开的端口是否已经打开。 netstat –rn 打印路由表信息。 netstat –in 供给体系上的接口信息,打印每个接口的MTU,输入分>>>详细阅读
本文标题:Java反射机制应用实践
地址:http://www.17bianji.com/lsqh/35285.html
1/2 1