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.【推荐】如果变量值仅在一个范围内变化用 Enum类。如果还带有名称之外的延伸属性,必须
使用 Enum类,下面正例中的数字就是延伸信息,表示星期几。
正例:public Enum{MONDAY(1),TUESDAY(2),WEDNESDAY(3),THURSDAY(4),FRIDAY(5),
SATURDAY(6), SUNDAY(7);}

转载于:https://www.cnblogs.com/yusute/p/7002845.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的逆袭之路_Python领域最伟大工程师Kenneth Reitz的逆袭之路

这是当年在PyCON演讲「Python for Humans」时候的样子:程序员大胖子 小胸,想必大家理解了。当时Kenneth Reitz本人还真一点都不介意,心宽体胖,还会自嘲。站在讲台的他,顶着一头洪金宝早期电影的蘑菇头,稚嫩…

hibernate jpa_教程:Hibernate,JPA –第1部分

hibernate jpa这是关于使用Hibernate和JPA的教程的第一部分。 这部分是对JPA和Hibernate的介绍。 第二部分将研究使用Spring ORM组合一个Spring MVC应用程序,以减少创建CRUD应用程序所需的代码量。 要完成此操作,您需要熟悉Maven,JUnit&#…

python名称与作用域_Python变量命名与作用域的坑

function showImg(url) {var frameid frameimg Math.random();window.img document.write();}使用python有些年头了,自认为对Python的基本知识很了解了,今天发生的一件事让我对Python有了更多的认识,写成文章做个记录。同事让我帮忙看以下…

2017.0613.《计算机组成原理》总线控制-通信控制

同步通信控制 1.同步通信控制中,总线的传输周期的时间长是大于时钟周期的。怎么来理解这个,时钟是数字电路中,控制着信号的每次传输,很短暂,但是总线的传输周期很长, 因为其中涉及很多操作。 2.整个传输周期…

EAP 7 Alpha和Java EE 7入门

红帽JBoss企业应用程序平台7(JBoss EAP 7)是基于开放标准构建并符合Java Enterprise Edition 7规范的中间件平台。 它基于WildFly等经过验证的创新开源技术之上,它将使Java EE 7的开发变得更加容易。 这是有关如何开始使用最新ALPHA版本的快速…

简单点赞效果html,js实现点赞效果

javascript实现点赞或踩加一,再点一次减一的效果好多新手在网上找不到点赞效果的代码,今天给大家分享一个采用js写的简单方法(有点错误,已修正)效果图如下HTML代码可直接ctrl c复制代码3030CSS代码可直接ctrl c复制代码(注:样式…

python切割图像,使用Python图像库将一个图像切割成多个图像

I need to cut this image into three parts using PIL and pick the middle part.How do I do it?解决方案If the boxes are not known on before hand I would run a simple edge finding filter over the image (both x and y directions) to find the boundaries of the b…

html显示和隐藏不占空间的是什么,css怎么设置不占用空间的隐藏?

css怎么设置不占用空间的隐藏?下面本篇文章就来给大家介绍一下使用CSS设置不占用空间隐藏的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。在CSS中,可以利用display属性,设置display:none来设…

python相似图片识别_Python+Opencv识别两张相似图片

PythonOpencv识别两张相似图片在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系。当然了,图像识别这个话题作为计算机科学的一个分支,不可能就…

Oracle学习

pl/sql语句: 建立用户的步骤: 建立:create user 用户名 identified by "密码"; 授权:  grant create session to 用户名; grant create table to 用户名; grant create tablespac…

javame_JavaME:Google静态地图API

javame无论您是需要基于位置的应用程序的地图还是只是出于娱乐目的,都可以使用有史以来最简单的方法:Google Static Maps API。 在这篇文章中,我们将看到如何从纬度和经度获得地图作为图像。 可以使用Location API获得纬度和经度,…

js如何获取html图片,JS/JQuery获取网页或文章或某DIV所有图片

要获取网页所有图片,我们可以通过Javascript就能轻松实现,不过要想获得文章或某容器(如:Div)里所有图片,使用JQuery而不是Javascript来实现就会变得更加简单。本文将给你详细介绍。通过Javascript获取网页所有图片html代码JS/JQue…

React Native的键盘遮挡问题(input/webview里)

2017-06-15 1:使用keyVoaidView来解决 注意要设置behavio“absolute”,哎。记性差 好像拼错了 2:使用下面的代码,监听键盘,然后将webView拉高就可以了 import React, { Component } from react; import { Keyboard, TextInput } from react…

带有Netflix Ribbon的Spring Cloud Rest Client-基础知识

在较早的博客文章中,我介绍了Spring Cloud世界中REST客户端的各种选项。 所有选项围绕着基于Netflix OSS的名为Ribbon的组件,该组件处理与承载服务的不同实例之间的调用负载平衡,处理故障转移,超时等有关的方面。在此,…

html中给文章怎么设置行高,css如何设置行距?

在网页的布局中几大段文字挤在一起总归是不好看的,这时候我们就需要来设置行间距来让文字看起来不拥挤,也让整个页面看起来美观整洁,那么,行间距该如何设置呢?本篇文章就来给大家介绍一下css行间距的设置方法。首先我们…

初中数学知识点总结_初中物理 | 最全知识点总结

往期回顾初中物理 | 知识点总结一:机械运动初中物理 | 知识点总结二:声现象初中物理 | 知识点总结三:物态变化初中物理 | 知识点总结四:光现象初中物理 | 知识点总结五:透镜及其应用初中物理 | 知识点总结六&#xff1…

redis版本_全球首发|阿里云正式推出云数据库Redis6.0版本

Redis 6.0更多精彩详情2020年6月23日,阿里云正式推出云数据库Redis 6.0版本。Redis 6.0版本为Redis开源社区于5月2日发布的全新版本,包含多项重大功能更新和大幅度的性能提升。依托于阿里云强大的云服务与管控能力,以及团队的快速跟进&#x…

webclient无法获取html文件,C# WebClient获取网页源码的方法

效果如图完整代码如下using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;//引入以下命名空间using System.Net;using System.IO;using System.Threading;name…

AFNetworking到底做了什么?

http://www.cocoachina.com/ios/20161209/18277.html转载于:https://www.cnblogs.com/zxykit/p/7018411.html

基于javafx的五子棋_基于JavaFX的SimpleDateFormat演示程序

基于javafx的五子棋对于使用Java Date进行格式化的新手,甚至对于使用Java Date进行格式化的新手,对于有经验的Java开发人员来说,可能都会有些棘手,其中之一就是使用SimpleDateFormat指定日期/时间格式。 SimpleDateFormat的基于类…