使用equals或==时,常量在前面
正确示范:
if ("1".equals(string) && "0".equals(string2)) {
System.out.println("yes");
}
错误示范:
// 错误的示范
if (!StringUtils.isEmpty(string)&&"1".equals(string)
&& !StringUtils.isEmpty(string2) &&"0".equals(string2)) {
System.out.println("yes");
}
以上2个例子,效果一样,但是第二个代码更冗杂丑陋。 如果是变量在前,那么第二种也没问题,但是常量在前,有效的避免了null.equals报错的问题。所以不用加isEmpty判断了。
优点:
1、避免了null.equals报错。
2、避免了== 写成 =。(判断符号 错写成 赋值符号)
兼容性代码
很多代码都是复制的。 由于历史原因,对接系统的大小写不一致。
例如: 对接系统的返回报文有的是success 有的是SUCCESS。
如果要求统一改为大写或小写要协调多方系统。所以还是自己改最方便:
string.equals("success");
兼容为:
string.equalsIgnoreCase("success");
string.contains("success");
兼容为:
string.toLowerCase().contains("success");
random变量静态化
random类的创建是比较耗时的,可以初始化一次,后续只调用方法。效率会高些。
直接用:
public void test(){
new Random().nextBoolean()
}
静态化:
private static Random random= new Random();
public void test(){
random.nextBoolean();
}