一、泛型
泛型只能使用引用数据类型。
1、泛型类
(1)常见泛型类/接口
List Map Set及其实现类
(1)自定义
public class ClassName<K,T>{
//属性列表
//方法列表
}
2、泛型方法
同一个类内允许重载泛型方法为固定类型的参数数量相同的方法,实际调用时优先调用非泛型方法。
public <K,T> 返回类型 save(参数列表){
//方法体
}
二、注解
1、注解存在的意义
一定程度上影响程序运行,起到检查跟约束的实际功能。
2、四大元注解
用于标注其他注解
(1)@Target//目标注解
描述注解适用范围:包括类、方法,构造方法等
@Target(value = {范围元素列表});
/*
范围有:
TYPE,//类的定义
FIELD,//属性
METHOD,//行为方法
PARAMETER,//方法参数
CONSTRUCTOR,//构造方法
LOCAL_VARIABLE,//局部变量
ANNOTATION_TYPE,//注解声明
PACKAGE,//包
*/
(2)@Retention//级别注解
描述注解保留的级别,有源码级别(SOURCE)<字节码级别(CLASS)<运行时(RUNTIME)。
每当代码执行完指定级别时,注解默认丢弃。
@Retention(value = {范围元素列表});
/*
范围有:
SOURCE,
CLASS,
RUNTIME,
*/
(3)@Documented
表示允许将注解被例如javadoc此类的工具文档化,成为注解元素的公共API。
(4)@Inherited
表示在一个父子类的继承关系中,当父类被一个注解@a标注时,如果注解声明时有被@Inherited标注,则子类也默认被该注解@a标注。
该元注解对接口实现关系和接口继承关系无效。
3、自定义注解
@Target(value = {列表})
@Retention(value = {保留级别列表})
//当列表中只有一个元素时value={}可以省略
@Documented
@Inherited
public @interface AnnotationName{
}