反射-注解-泛型

1.反射

java 靠反射  成为 伪动态语言== 在运行时,代码可以根据某些条件改变自身结构。

框架 = 设计模式 + 注解 + 反射
反射 应用 动态代理

反射  与正常路径(包类-new ->对象)相反  可通过对象拿到包类。 原来时 对象调用方法--->>  反射-方法对象呼喊对象

 image

程序 运行时,反射可以出来干脏活。

反射 打破封装,自守自攻。 封装性如单例吗,是建议问题。反射是能不能问题

单例也没用了。

编译器不知道用哪个类,这是时候用反射,读取配置。

登录用登录对象,注册用注册对象。删除用删除对象

字节码文件 加载进内存--运行时类,被虚拟机控制, 成为Class实例对象。

image

通过 类造对象,但类本身也是Class的对象。Class 可以知道并控制一个字节码运行类的所有信息。 --反射

泛型信息擦除后,声明时的泛型信息会记录在Class的Signature签名属性中。编译器在擦除泛型时,会保留一部分泛型元数据。

运行类本身, 运行类对象,运行类路径(动态性),类加载器--都可获取目标类的Class实例。

image

image

 

image

类的加载-链接-初始化

 

image

 

image

 

【造对象 四种方式 :new 反序列化 反射 clone】

image

运行时才能确定用哪个类,最好用反射--动态性

image

mybaties 泛型

image

 

复习:封装性(单例模式) 抽象类(模板方法) 接口(静态代理、简单工厂、工厂方法)抽象工厂没讲

Class实例,就是一个运行实类。newInstance就能获取该运行时类的对象。一定要有空参构造器

静态代理------------

AOP原理 -动态代理-反射

image

 代理对象把 被代理对象 包裹起来。经纪人把明星包裹起来。

image

 

 

 

 

 

 

 

 

 

 

2.注解

 标记注解 @Override

可在 编译,类加载,运行时 读取

框架 = 注解 + 反射 + 设计模式

a文档注解-生成文档 
b编译时 有格式检查 (JDK内置3个注解)  重写,废弃,抑制

c跟踪代码依赖性,实现替代配置文件

声明: @interface 自定义注解

image

反射可以获取注解。加载到内存里,反射读取,XX.class.getAnnotations() 

自定义注解 必须配上注解的 信息处理流程(反射) 才有意义。

 

image

image

最后加载到内存里,反射读取,XX.class.getAnnotations() 

元注解-- 定义注解的注解

image

image

注解 新特性-可重复注解(+ 元注解 @Repeatable())

image

image

 注解 新特性-类型注解, +两个范围,类型参数上(类泛型声明) + 任意类型声明位置上

 

自己new 创建对象+调用方法  -->  简单工厂模式 调用工厂获取对象 + 调用方法

若增加新擦混产品,会违反开闭原则-要修改类

工厂方法 --接口定义--各自工厂

抽象类--模板方法--谁调用,谁就是this(谁里有实现。  像个钩子--回调方法

image

 

3.泛型

 

posted on 2026-01-02 15:30  daofree  阅读(2)  评论(0)    收藏  举报