android中 @IntDef、@Retention注解的使用

从车载app转车载FWK的carService,看源码的时候,看到很多注解,在此记录一下。

一、@IntDef和@Retention注解

这个注解我理解就是一个枚举的作用,即Android中的Enum差不多。

用法如下:

    public class MyTest{
        //定义几个常量值
        public static final int ZERO = 0;//否应答NACK
        public static final int ONE = 1;//接收完多包下行数据
        public static final int TWO = 2;//完成发送多包下行数据
        public static final int THREE = 3;//节点接收下行数据失败(数据无效)

        //用IntDef定义包含几个常量,枚举类名用接口代替
        @IntDef({
            ZERO,
            ONE,
            TWO,
            THREE
        })
        @Retention(RetentionPolicy.SOURCE)
        public @interface EtcState {
        }
        /**
         * @param state 0x0:否应答NACK
         *              0x1:接收完多包下行数据
         *              0x2:完成发送多包下行数据
         *              0x3:节点接收下行数据失败(数据无效)
         * @throws CarNotConnectedException
         */
        //使用时,@EtcState约束了state,所以这里传以上定义好的4个常量值
        public void sendEtcState(@EtcState int state) throws CarNotConnectedException {
            try {
                sendToEtcState(state);
            } catch (RemoteException e) {
            throw new CarNotConnectedException(e);
            }
        }
    }
    

然后调用sendEtcState方法时如下:

sendEtcState(MyTest.ONE);

@StringDef用法也是如此。

记得导入包

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值