• 跟着刚哥梳理java知识点——枚举和注解(十四)


    enum Season{
      SPRING("spring","春暖花开"),
      SUMMER("summer","夏日炎炎"),
      AUTUMN("autumn","秋高气爽"),
      WINTER("winter","白雪皑皑");
    }

    其实上面等等同于:

    class Season{
      Public static final Season SPRING = new Season("spring","春暖花开"); 
      Public static final Season SUMMER= new Season("summer","夏日炎炎"); 
      Public static final Season AUTUMN= new Season("autumn","秋高气爽"); 
      Public static final Season WINTER= new Season("winter","白雪皑皑");
    
      private final String seasonName;
      privete final String seasonDesc;
    
      private Season(String seasonName,String seasonDesc){
      this.seasonName = seasonName;
      this.seasonDesc = seasonDesc;
      }
    }

    上面其实我自己写了一个枚举类,就是把相同的去掉,发现了吗?就是封装的枚举类然后把每行结束的分号改成了逗号

    主要方法:
      ① values():获取所有枚举类对象,返回的是对象的数组
        Season[] season = Season.values(); 
      ② valueOf(String name):获取对象名字的枚举类对象,返回枚举
        Season sea = Season.valueOf("SPRING"); 
      注意:参数SPRING是实例化对象名称,写错后,sea可不是NULL,会报错的。

    如何让枚举实现接口:

    iterface Info{
      void show();
    }
    enum Season Implements Info{
      SPRING("spring","春暖花开"){
        public void show(){
          system.out.printLn("春天在哪里?");
      }
    },
    SUMMER("summer","夏日炎炎"){
      public void show(){
        system.out.printLn("春天在哪里?");
      }
    },
    AUTUMN("autumn","秋高气爽"){
      public void show(){
        system.out.printLn("春天在哪里?");
      }
    },
    WINTER("winter","白雪皑皑"){
      public void show(){
        system.out.printLn("春天在哪里?");
      }
    };
    }

    总结:
    发现是不是可以在每个对象内部重写接口的方法,这样就让不同的枚举类的对象
    实现接口效果不一样。

    Java注解
    ①:从java5.0开始,增加了对元数据的支持,也就是注解(Annotation)。
      就是代码的特殊标记,这些标记可以在编译、类加载、运行时被读取并执行相应的处理。通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。
    ② Annotation 可用于修饰包、类、构造器、方法、成员变量、参数、局部变量
    ③ JDK提供的的三个常用的基本注解类型
     √ @Override:重写父类方法,只能用于方法
        这个写不写,其实都能重写,好处就是代码一眼就能看见是重写
     √ @Deprecated:用于表示某个程序元素过时(类、方法)
        过时,不代表不能用,只是不推荐了。
        JDK里每次推出新版本都可能去过时一些,其实就是告诉你有更好的
        替换它了,尽量不用它了,没准下个版本我们就去掉了。
        加上以后类或者方法上加一条横线
     √ @SupperessWarnings:抑制编译器警告
    给有强迫症的人用的,呵呵。总看到IDE环境左侧一些小黄叹号

    加上以后就不叹号了,rawtypes 表示没用泛型 unused表示没用呢
    ④ 如何自定义注解
    格式:
    public @interface MyAnnotation{
    }
    基本没什么人用,知道格式就行了
    ⑤ 元注解
    @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR})
    @Retention(RetentionPolicy.SOURCE)
    public @interface SuppressWarnings {
    String[] value();
    }
    绿色的就是元注解,意思就是修饰注解的注解
    @Retention:表示下面注解的生命周期
    RetentionPolicy.SOURCE 是个枚举
    代表在编译的时候直接丢弃,也是默认值
    @Target:用于表示哪些类型能被修饰
    比如:我只想让注解修饰类和方法等
    @Documented:指定修饰的注解可以被javadoc工具提取成文档
    @Inherited:被它修饰的注解具有继承性,使用极少。知道就行了

  • 相关阅读:
    day03
    day02
    day01
    springBoot相关(二)
    predis操作redis方法大全
    按钮变色变色变色
    mysql中获取一天、一周、一月时间数据的各种sql语句写
    wordpress速度慢
    html关于强制显示、隐藏浏览器的滚动条
    css全局样式表
  • 原文地址:https://www.cnblogs.com/hzg110/p/6683725.html
Copyright © 2020-2023  润新知