前言

在Java的开发中,我们经常需要输入一些int或者String类型的值,而这些值可能仅仅用于代表状态或者类别。但是我们只希望这个参数的值输入0 到 5 这个范围的值,如果多输入大了我们的代码上并没有定义这些大于这些值的操作。 所以我们需要进行限制。 一般情况下我们可以使用枚举enum。 但是,个人经常在折腾Android开发,而Android并不推荐使用enum,因为特别容易activity被持有导致内存泄漏。 所以,我们只能参考用注解的方式限定一些值。

代码部分

方式1 :

比较推荐使用这个方式

首先创建一个接口设置一些常量,我们将限定只使用这个接口里的值:

public interface Level {

int LEVEL_V = 1;

int LEVEL_D = 2;

int LEVEL_I = 3;

int LEVEL_W = 4;

int LEVEL_E = 5;

}

然后创建注解类,使用@IntDef

//@Retention表示这个注解保留的范围,SOURCE=注解将被编译器编译的时候丢弃,不在代码运行时存在,这个注解只是希望IDE警告限定值的范围并不需要保留到VM或者运行时

@Retention(SOURCE)

//@Target 这个注解需要使用的地方 PARAMETER=注解将被使用到方法的参数中

@Target({PARAMETER})

//显式声明被定义的整数值,除了@IntDef还有@LongDef @St

java注解约束参数为固定值_Java学习 使用注解将参数的值限定相关推荐

  1. java注解约束参数为固定值_java自定义注解的实现及属性设置

    java自定义注解,元注解的使用 ,元注解中值详解 元注解:用于注解注解的注解... 元注解共有4个: ①.@Target:用于明确注解用于目标类的哪个位置 ElementType枚举类的值: Typ ...

  2. android xml java混合编程_Java学习中注解与多线程,网络编程与XML技术

    本部分内容主要有集合框架及泛型,实用类,输入和输出处理,注解与多线程,网络编程与XML技术.初次学习这部分会感觉很难,主要是概念难于理解,最好是多看看例子,多练习.下面是个人的总结 拉勾IT课小编为大 ...

  3. Java中反射主要应用在哪里_Java学习:反射的应用场景和解析方法

    提到java语言的高级特性,反射绝对是Top1级别的,在大量开源框架中的应用范例比比皆是,那么需要了解清楚反射到底是什么?为什么要使用反射?如何使用反射?(what,why,how) 什么是反射? 正 ...

  4. java url传参中文乱码问题_java中url传中文参数出现乱码

    缘由:java Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(形成中文乱码).服务器 方法一:编码 咱们须要把request. ...

  5. sql2008安装时提示参数不能为空_Java Validation API,实现参数的合法性校验

    Hibernate Validator是Java Validation API(JSR 303)标准的一个具体实现,用于对参数进行合法性校验.校验数据在任何应用中都是一个很常见的任务,所以JCP组织定 ...

  6. java 内部类 返回值_Java学习笔记:形参和返回值、内部类、常用API

    形参和返回值 类名作形参 public void useCat(Cat c){ c.eat(); } CatOperator co=new CatOperator(); Cat c=new Cat() ...

  7. java怎么把随机数放入数组_Java学习:集合的使用与数组的区别

    ArrayList 集合 ArrayList 集合 ArrayList list = new ArrayList<>(); 对于ArrayList来说,有一个尖括号代表泛型. 泛型:也就是 ...

  8. java 十亿数据量运行速度慢_Java学习进阶之数据结构知识梳理

    Java是一门面向对象编程语言,具有功能强大和简单易用两大属性.Java工具包提供了强大的数据结构,包括枚举.位集合.向量.栈.字典.哈希表.属性等接口类.拉勾IT课小编为大家分析,java的每一个细 ...

  9. Java为枚举类创建成员变量_Java学习——枚举类

    Java学习--枚举类 摘要:本文主要介绍了Java的枚举类. 部分内容来自以下博客: https://www.cnblogs.com/sister/p/4700702.html https://bl ...

最新文章

  1. XamarinAndroid组件教程RecylerView适配器设置动画示例
  2. 机房日常技术总结——Windows篇
  3. NYOJ 103 A+B Problem II
  4. flashcom网址收集
  5. 计算机国际安全顶级会议
  6. JAVA生产环境验证_Java生产环境下性能监控与调优详解
  7. 在JBoss的服务器端正确解码URL参数
  8. 一文读懂802.1x协议,随便秒杀面试官
  9. 高可用的MongoDB集群
  10. Ubuntu-安装-有道词典
  11. 有什么轻量级的大数据技术?
  12. appium2.0+ 单点触控和多点触控新的解决方案
  13. nox模拟器(安卓5.1)adb连接
  14. 那些Explain参数代表着什么?
  15. typescript 之 keyof
  16. 【HUST】网安|操作系统实验|实验一 内核编译、系统调用、编写批处理脚本
  17. Appium的一些常见问题及解决方法
  18. http协议(一)/应用层
  19. iOS图片转成视频方法
  20. TCO2016 R1B

热门文章

  1. 读薄《高性能MySql》(三)索引优化
  2. 在PPT中插入LaTeX公式(不用mathtype的方法,亲测有用!)
  3. 跟光磊学Java-macOS版Java8开发环境搭建(基于ARM 64-bit)
  4. 在线演绎3D图表如何操作
  5. mysql auto_increment 重置_如何重置MySQL中的AUTO_INCREMENT?
  6. 乘S10热销的东风,三星四机齐出再攻中国手机市场
  7. 发展智慧城市,需要重点解决哪三大问题?
  8. error LNK2001: 无法解析的外部符号 __imp____iob_func
  9. 阿里巴巴2016校园招聘 研发工程师(二)详解
  10. 打字母案例完整版(C#)