关于java注解使用的例子

来源:互联网 发布:国际软件学院 编辑:程序博客网 时间:2024/05/20 16:01

1、首先定义一个皮肤的类型:

public enum SkinType {    NORMAL,    TRANSPARENT,}

可以看到,这个皮肤有两种类型,一种是正常、一种是透明类型。
2、其次,定义一个注解类型:

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)public @interface SkinMode {    SkinType value() default SkinType.NORMAL;}

可以看到,为注解@Target设置一个ElementType.TYPE 的值表示该注解作用于类上,类似的 @Target还有很多不同的属性可以设置,通过官方API文档可以看到,ElementType还有很多值,如下图所示:
这里写图片描述

注解@Retention的值为RetentionPolicy.RUNTIME的意思为在JVM运行时刻保留值,类似Target的,RetentionPolicy还有值:
这里写图片描述
3、在父类代码中使用反射获得SkinMode的值:

SkinMode skinMode = getClass().getAnnotation(SkinMode.class);        skinType = skinMode != null ? skinMode.value() : SkinType.NORMAL;

当类没有主动设置SkinMode的值的时候,则为默认值SkinType.NORMAL。
主动设置SkinMode值方式如下:

@SkinMode(SkinType.TRANSPARENT)

在类的开头加上注解并设定初始值,则其在运行期间获取的值为SkinType.TRANSPARENT。

可以看出,注解的使用让代码有更少的发生错误的可能性,也增加了可维护性。

0 0
原创粉丝点击