Java设计模式(反射技术)

news/2024/5/19 2:26:51 标签: 设计模式, 反射, java

java反射技术应用广泛,能够配置:类的全限定名、方法和参数、完成对象的初始化、反射一些方法。java反射内容繁多,包括对象构建、反射方法、注解、参数、接口等。

1 通过反射构建对象

java中允许通过反射配置信息构建对象。例如:
在这里插入图片描述通过反射的方法去构建它,如下所示。
在这里插入图片描述
在这里插入图片描述
以上的构造方法都是无参构造,含参构造方法的反射构造如下所示。
在这里插入图片描述
在这里插入图片描述
先通过forName加载到类的加载器,然后通过getConstuctor方法,它的参数可以是多个,定义为String.class,为有且只有一个参数类型为String的构建方法。通过该方法可以对重名方法进行排除,使用newInstance方法生成对象。

2. 反射方法

在使用反射方法前要获取方法对象,得到方法才能反射
在这里插入图片描述
在这里插入图片描述
当有具体的对象target而不知道具体是哪个类,可以使用target.getClass().getMethod(:sayHello:,String,class)代替,其中第一个参数是方法名,第二个参数是参数类型,是一个列表,多个参数可以继续编写多个类型。反射方法是使用returnObj=method.invoke(target,"张三”)完成,第一个参数确定用那个对象调用方法,“张三”是参数,则等同于target.sayHello(“张三”)。
实例:通过实例看如何反射生成对象和反射调度方法。
在这里插入图片描述


http://www.niftyadmin.cn/n/1865517.html

相关文章

Java设计模式(动态代理模式和责任链模式)

动态代理的意义在于生成一个占位,代理真实对象,从而控制正式对象的访问。代理的作用是在真实对象访问之前或者之后加入对应的逻辑,或者根据其他的规则控制是否使用真实对象。代理需分为两步:代理对象和真实对象建立代理关系&#…

Java设计模式(观察者模式)

观察者模式又称为发布订阅模式,是对象的行为模式。观察者模式定义了一对多的依赖关系,让多个观察者对象同时监视着被观察者的状态,当被观察者的状态发生变化会通知所有观察者 并让其自动更新自己。观察者模式示例: 类似这样&…

Java设计模式(工厂模式和抽象工厂模式)

1.普通工厂模式 有个IProduct 产品接口 ,它下面有 5个实现类Product1、Product2、 Product3 、Product4、Product5。它们属于1个大类,可以通过1个工厂去管理它们的生成,但是由于类型不同,所以初始化有所不同 。为了方便使用产品工…

Java设计模式(建造者模式)

建造者模式属于对象的创建模式。可以将一个产品的内部表象(属性〉与产品的生成过程分割开来,从而使 建造过程生成具有不同的内部表象的产品对象。Builder 模式是种分步构建对象的模式。 实例: 首先,创建一个 TicketHe per 对象&am…

认识Mybatis核心组件

持久层可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏(大部分的重要数据都会有相关的备份机制),在断电或者其他情况下,重新开启系统仍然可以读取这些数据。Mybatis 最大的成功主要有三点&#…

MyBatis的解析和运行原理

MyBatis运行过程分为两步: 读取配置文件缓存到Configuration对象,用以创建SqlSessionFactory;SqlSession的执行过程 1. 构建SqlSessionFactory过程 SqlSessionFactory是MyBatis的核心类之一,提供创建MyBatis的核心接口SqlSessi…

装配SpringBean

1.依赖注入的三种方式 实际环境中实现 IoC 容器的方式主要分为两大类, 一类是依赖查找,依赖查找是通过资源定位,把对应的资源查找回来。另一类则是依赖注入,Spring主要使用的是依赖注入。依赖注入可分为3种方式: 构造…

Spring与数据库编程

1. 传统JDBC的缺点 一般的JDBC代码如下: 传统的JDBC代码中含有大量的异常处理语句,使得代码繁杂。 2. 配置数据库资源 在实际工作中,大部分会配置成为数据库连接池,我们既可以使用 Spring 内部提供的类,也可以使…