ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java枚举与注解

2022-04-07 14:35:06  阅读:122  来源: 互联网

标签:java String Season private 枚举 注解 public name


目录

枚举

// 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抑制所有警告
      • 抑制范围一个元素,可以是一条语句,方法,类,包
  • 元注解: 修饰注解的注解
    • @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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有