java枚举与注解
作者:互联网
目录
枚举
// switch 可以用枚举类型
enum Sesson implements IA{
//通过javap反编译可以看出默认继承自Enum类,而且Sesson是final类
//不能extends别的了,implements接口还是可以的
// public static final Season SPRING = new Season("春天","温暖");
// public static final Season SUMMER = new Season("夏天","炎热");
SPRING("春天","温暖"),SUMMER("夏天","炎热");//必须放在第一行,逗号隔开
//WHAT 调用无参构造器则不用()
private String name;
private String desc;
private Season(String name,String desc){
this.name = name;
this.decs = desc;
}
public String getName(){}
public String getDesc(){}
private Season(){}
}
// 最简化的:
enum Gender{BOY,GIRL;}
main(){
Gender boy = Gender.BOY //注意返回的是类
print(boy)//调用Gender的父类Enum的toString方法(return name),输出BOY
}
注解
也被称为元数据,用于修饰解释包,类,方法,属性,构造器,局部变量等数据信息.
注解不影响程序逻辑但可以被编译或运行,相当于嵌入在代码中的补充信息.
- 三个基本的注解:
- @Override 重写父类,写了注解编译器会检查是否确实重写了
点进去:
//@Target是修饰注解的注解,称为元注解 @Target(ELementType.METHOD) //表示只能修饰方法 @Retention(RetentionPolicy.SOURCE) public @interface Override{} //@interface表示注解类
- @Deprecated //表示过时,不推荐使用.出现中划线
- @SuppressWarnings({"rawtypes","unchecked","unused"}) //抑制编译器警告
- all抑制所有警告
- 抑制范围一个元素,可以是一条语句,方法,类,包
- @Override 重写父类,写了注解编译器会检查是否确实重写了
- 元注解: 修饰注解的注解
- @Target(ELementType.METHOD) //表示只能修饰方法
- @Retention(RetentionPolicy.SOURCE):用于指定保留范围
- SOURCE:编译器使用后直接丢弃
- CLASS:注释记录在.class文件中,JVM不会保留注解,这是默认值
- RUNTIME:会在.class中,JVM会保留,可以通过反射获得注解
- Documented 注解是否在javadoc中保留
- Inherited 子类会继承父类注解
标签:java,String,Season,private,枚举,注解,public,name 来源: https://www.cnblogs.com/wqzz/p/16112116.html