Java中的注解
三种注解
@Override
限定于某个某个方法,重写父类的方法,该注解只能用于方法
1 2 3 4
| @Override public String toString(){ return season+characteristic; }
|
源码,下面的并非一个接口,而是一个注解类,是jdk1.5之后添加的
1 2 3 4
| @Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Override { }
|
@Deprecated
用于表示某个方法已经过时,但是过时并不是表示不可以使用,这个注解可以做到新旧版本的过度。
1 2 3 4
| @Deprecated public void say(){ }
|
@SuppressWarning
抑制编译器警告
可以使用该注解,取消编译器对这个的警告,例如下面的方法中,就可以抑制所有的警告all,当然我们也可以精确的仅仅抑制某个警告,比如使用unused去抑制编译器对我们从没有使用的一个属性的警告。而我们使用的SuppressWarnings范围囊括这一个方法或者类,如果在main方法前使用,则我们可以抑制main方法的警告,而不妨碍别的方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| 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()); 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.SPRING.compareTo(Season.AUTUMN));
} } @SuppressWarnings("all") enum Season{ SPRING("春天","温暖"), SUMMER ("夏天","炎热"), AUTUMN ("秋天","凉爽"), WINTER ("冬天","寒冷"), OTHER; private String season, characteristic; 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(){
}
}
|
四种元注解
- Retntion(保留)指定注解的作用范围,三种source,class,runtime
- Target 指定注解可以在那些地方使用
- Documented指定该注解是否会在Javadoc中体现在页面中
- Inherited 子类会继承父类注解
比如下面的类Target表示在方法中使用,而Retenttion表示在源文件中保留注释
1 2 3 4
| @Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Override { }
|