【仅供内部供应商使用,不提供对外解答和培训】

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

1.强制Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals,在不确定的情况下,需要使用工具方法ComparatorUtils#equals进行对象比较。

注意:如果为了更高的效率,也可以调用AssistUtils#equals。

正确的写法 折叠源码

 

    // do something
}
if ("abcde".equals(op)) {
   // do something
}

 

错误的写法 折叠源码

 

if (a.equals(b)) {
   // do something
}

 

2.在集合(List、Set、Map等)是否为空的是否,不允许使用 list.size() == 0的方式来判断,必须使用 list.isEmpty()。

3.配置文件的属性,都要求加上@Identifier注解,防止出现属性名重构修改的时候,持久化名字未做兼容。

正确的写法 折叠源码

 

@Identifier("privateSHA256Key")
private Conf<String> privateSHA256Key = Holders.simple("aki8r-mk89t-pety2-mndu8-9wrth-nht3r-012jd");

 

错误的写法 折叠源码

 

private Conf<String> smsAppKey = Holders.simple(StringUtils.EMPTY);
 
private Conf<String> smsAppSecret = Holders.simple(StringUtils.EMPTY);

 

4.重写hashCode和equals方法,需要使用下面的模板形式,不得使用IDEA自动生成的代码:

正确的写法 展开源码错误的写法 展开源码

5.重写toString方法,尽量使用下面的模板形式,不要使用IDEA自动生成的代码:

toString写法 展开源码

如果希望排除掉一些属性加入toString中,可以用

忽略某些属性 展开源码

6.com.fr.report.core下的类,禁止被其他包下的类引用

错误的用法 展开源码

7.推荐使用枚举模式写单例,天然线程安全且简洁

单例示例 展开源码
  • No labels