Java开发手册之常量定义

Java开发手册之常量定义Java开发手册之常量定义

大家好,又见面了,我是你们的朋友全栈君。

  1. 【强制】不允许任何魔法值(即未经定义的常量)直接出现在代码中。
    反例String key = "Id#taobao_" + tradeId; cache.put(key, value);
  2. 【强制】long或者Long初始赋值时,使用大写的L,不能是小写的l,小写容易跟数字1混淆,造成误解。
    说明:Long a = 2l; 写的是数字的21,还是Long型的2?
  3. 【推荐】不要使用一个常量类维护所有常量,按常量功能进行归类,分开维护。
    说明:大而全的常量类,非得使用查找功能才能定位到修改的常量,不利于理解和维护。
    正例:缓存相关常量放在类CacheConsts下;系统配置相关常量放在类ConfigConsts下。
  4. 【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。
    1) 跨应用共享常量:放置在二方库中,通常是client.jar中的constant目录下。
    2) 应用内共享常量:放置在一方库中,通常是modules中的constant目录下。
    反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示
    “是”的变量:
    类A中:public static final String YES = "yes"; 类B中:public static final String YES = "y";
    A.YES.equals(B.YES),预期是true,但实际返回为false,导致线上问题。
    3) 子工程内部共享常量:即在当前子工程的constant目录下。
    4) 包内共享常量:即在当前包下单独的constant目录下。
    5) 类内共享常量:直接在类内部private static final定义。
  5. 【推荐】如果变量值仅在一个范围内变化,且带有名称之外的延伸属性,定义为枚举类。下面正例中的数字就是延伸信息,表示星期几。
    正例public Enum { MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7);}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106541.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PHP基础

    PHP基础前言发现PHP审计和利用的一些漏洞利用场景挺有意思的,来学习一下php基础内容,大部分概念和代码和Java或c++的差不多,挑些php独有的特性来做记录。基础知识超级全局变量PHP

    2021年12月13日
    40
  • 怎么从安卓设备转移数据到苹果_换手机了数据怎么办?这样做安卓、苹果手机数据一键转移…

    怎么从安卓设备转移数据到苹果_换手机了数据怎么办?这样做安卓、苹果手机数据一键转移…(2)借助iCloud云备份①确保手机已经连接WiFi,然后在手机“设置”中,依次点击“AppleID——iCloud——iCloud云备份”,开启iCloud云备份功能,然后点击“立即备份”。②接下来就是要将iCloud云备份上的数据下载到新手机上了。如何已经设置了新手机,那需要先抹掉它。依次点击“设置——通用——还原——抹掉所有内容和设置”即可。③手机开机后,往下进行操作,直到看到“应用与数…

    2022年5月26日
    52
  • python for循环多个参数处理_python for循环嵌套

    python for循环多个参数处理_python for循环嵌套实际上,“使用for循环遍历数组的最简单方法”(Python类型被命名为“list”BTW)是第二种方法,即foriteminsomelist:do_something_with(item)哪个FWIW适用于所有iterable(列表、元组、集合、dict、迭代器、生成器等)。基于范围的C风格版本被认为是非常不通俗的,并且只适用于列表或类似列表的iterable。WhatIwouldl…

    2022年8月12日
    8
  • python可以自动回收垃圾吗_python多线程实现

    python可以自动回收垃圾吗_python多线程实现前言现在的高级语言如java,c#等,都采用了垃圾回收机制,而不再像c,c++里,需要用户自己管理内存。自己管理内存及其自由,可以任意申请内存,但这如同一把双刃剑,可能会造成内存泄漏,空指针等bug

    2022年7月30日
    19
  • 独立IP与共享IP的区别

    独立IP与共享IP的区别

    2021年9月22日
    49
  • phony 详解_phoning翻译

    phony 详解_phoning翻译phony详解1:一个目标,可以产生target文件,也可以不产生target文件echo目标就不产生echo文件不产生文件,则每次makeecho。都将执行recipe。因为make总是妄图产生一个比temp更新的target–echo文件。echo:temp@echo”$(shellls-ltemp)”2:一个目标,可以

    2025年7月13日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号