关于java注解使用的例子

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。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值