Java中的注解(Annotation)

三种注解

@Override:限定于某个某个方法,重写父类的方法,该注解只能用于方法

 @Override
    public String toString(){
        return season+characteristic;
    }

源码,下面的并非一个接口,而是一个注解类,是jdk1.5之后添加的

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

@Deprecated:用于表示某个方法已经过时,但是过时并不是表示不可以使用,这个注解可以做到新旧版本的过度。

@Deprecated
    public void say(){
        
    }

@SuppressWarnings:抑制编译器警告

可以使用该注解,取消编译器对这个的警告,例如下面的方法中,就可以抑制所有的警告all,当然我们也可以精确的仅仅抑制某个警告,比如使用unused去抑制编译器对我们从没有使用的一个属性的警告。而我们使用的SuppressWarnings范围囊括这一个方法或者类,如果在main方法前使用,则我们可以抑制main方法的警告,而不妨碍别的方法。

package Learn;
public class Test {
    public static void main(String[] args) {
        System.out.println(Season.SPRING.toString());
        System.out.println(Season.SUMMER.toString());
        System.out.println(Season.AUTUMN.toString());
        System.out.println(Season.WINTER.toString());
        System.out.println(Season.SPRING.name());
        System.out.println(Season.SPRING.hashCode());
        //输出相应的编号,编号从0开始
        System.out.println(Season.SPRING.ordinal());
        Season []values=Season.values();
        for (Season A :values){
            System.out.println(A);
        }
        System.out.println(Season.valueOf("SPRING"));
        //System.out.println(Season.valueOf("dj"));
        System.out.println(Season.SPRING.compareTo(Season.AUTUMN));

    }
}
@SuppressWarnings("all")
enum Season{
    SPRING("春天","温暖"),
    SUMMER ("夏天","炎热"),
    AUTUMN ("秋天","凉爽"),
    WINTER ("冬天","寒冷"),
    OTHER;
    private String season, characteristic;
    /**将构造其私有化,防止在main方法中直接new对象*/
    private Season(){}
    private Season(String season,String characteristic){
        this.season=season;
        this.characteristic=characteristic;
    }


    @Override
    public String toString(){
        return season+characteristic;
    }
    @Deprecated
    public void say(){

    }

}


四种元注解

  1. Retntion(保留)指定注解的作用范围,三种source,class,runtime
  2. Target 指定注解可以在那些地方使用
  3. Documented指定该注解是否会在Javadoc中体现在页面中
  4. Inherited 子类会继承父类注解

比如下面的类Target表示在方法中使用,而Retenttion表示在源文件中保留注释

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值