反例:
- public class User {
- public static final String CONST_NAME = "name";
- ...
- }
-
-
- User user = new User();
- String nameKey = user.CONST_NAME;
正例:
- public class User {
- public static final String CONST_NAME = "name";
- ...
- }
-
-
- String nameKey = User.CONST_NAME;
不要用NullPointerException判定空
空指针非常应该用代码规避(好比检测不为空),而不是用捕捉非常的方法处理赏罚。
反例:
- public String getUserName(User user) {
- try {
- return user.getName();
- } catch (NullPointerException e) {
- return null;
- }
- }
正例:
- public String getUserName(User user) {
- if (Objects.isNull(user)) {
- return null;
- }
- return user.getName();
- }
行使String.valueOf(value)取代""+value
当要把其余工具或范例转化为字符串时,行使 String.valueOf(value) 比""+value 的服从更高。
反例:
- int i = 1;
- String s = "" + i;
正例:
- int i = 1;
- String s = String.valueOf(i);
过期代码添加 @Deprecated 注解
当一段代码过期,但为了兼容又无法直接删除,不但愿往后有人再行使它时,可以添加 @Deprecated 注解举办标志。在文档注释中添加 @deprecated 来举办表明,并提供可更换方案。
正例:
- /**
- * 生涯
- *
- * @deprecated 此要领服从较低,请行使{@link newSave()}要领替代它
- */
- @Deprecated
- public void save(){
- // do something
- }
让代码阔别 bug
榨取行使结构要领 BigDecimal(double)
BigDecimal(double) 存在精度丧失风险,在准确计较或值较量的场景中也许会导致营业逻辑非常。
反例:
- BigDecimal value = new BigDecimal(0.1D); // 0.100000000000000005551115...
正例:
- BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1
返回空数组和空荟萃而不是 null
返回 null ,必要挪用方逼迫检测 null ,不然就会抛出空指针非常。返回空数组或空荟萃,有用地停止了挪用方由于未检测 null 而抛出空指针非常,还可以删除挪用方检测 null 的语句使代码更简捷。
反例:
- public static Result[] getResults() {
- return null;
- }
-
-
- public static List<Result> getResultList() {
- return null;
- }
-
-
- public static Map<String, Result> getResultMap() {
- return null;
- }
-
-
- public static void main(String[] args) {
- Result[] results = getResults();
- if (results != null) {
- for (Result result : results) {
- ...
- }
- }
-
-
- List<Result> resultList = getResultList();
- if (resultList != null) {
- for (Result result : resultList) {
- ...
- }
- }
-
-
- Map<String, Result> resultMap = getResultMap();
- if (resultMap != null) {
- for (Map.Entry<String, Result> resultEntry : resultMap) {
- ...
- }
- }
- }
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|