枚举
格式
主要方法
public class Demo1 {public static void main(String[] args) {int i = LevelValue.LOW.compareTo(LevelValue.HIGH);System.out.println(i);//-2System.out.println(LevelValue.LOW.name());//LOWSystem.out.println(LevelValue.LOW.compareTo(LevelValue.LOW));//0System.out.println(LevelValue.LOW.equals(LevelValue.LOW));//trueSystem.out.println(LevelValue.LOW.toString());//LOWSystem.out.println(LevelValue.HIGH.ordinal());//2LevelValue x = Enum.valueOf(LevelValue.class, "HIGH");System.out.println(x.name());//HIGHx.show();}}
实现接口
public enum LevelValue implements LShow{LOW{@Overridepublic void show() {System.out.println("低等级");}},MEDIUM{@Overridepublic void show() {System.out.println("中等级");}},HIGH{@Overridepublic void show() {System.out.println("高等级");}};}interface LShow{public void show();}
注意事项
- 一旦定义了枚举,最好不要妄图修改里面的值,除非修改是必要的。
- 枚举类默认继承的是java.lang.Enum类而不是Object类
- 枚举类不能有子类,因为其枚举类默认被final修饰
- 只能有private构造方法
- switch中使用枚举时,直接使用常量名,不用携带类名
- 不能定义name属性,因为自带name属性
- 不要为枚举类中的属性提供set方法,不符合枚举最初设计初衷。
注解
Java 语言中的类、方法、变量、参数和包等都可以被标注。和注释不同,Java 标注可以通过反射获取标 注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行 时可以获取到标注内容
- 概念
- 怎么使用内置注解
- 怎么自定义注解
- 反射中怎么获取注解内容
内置注解
- @Override : 重写 *
- 定义在java.lang.Override
- @Deprecated:废弃
- 定义在java.lang.Deprecated
- ////@SafeVarargs
- Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
- @FunctionalInterface: 函数式接口 *
- Java 8 开始支持,标识一个匿名函数或函数式接口。
- ////@Repeatable:标识某注解可以在同一个声明上使用多次
- Java 8 开始支持,标识某注解可以在同一个声明上使用多次。
- @SuppressWarnings:抑制编译时的警告信息。 *
- 定义在java.lang.SuppressWarnings 三种使用方式
- @SuppressWarnings(“unchecked”) [^ 抑制单类型的警告]
@SuppressWarnings(“unchecked”,”rawtypes”) [^ 抑制多类型的警告]
@SuppressWarnings(“all”) [^ 抑制所有类型的警告]
元注解
作用在其他注解的注解
