中文编码low吗?
编码规范大家读了不止一遍了,各种规范插件也层出不穷,但是中文编码low吗?如果你把变量方法名定义为中文那没什么好说的,甚至是拼音都很low,但是如果是枚举的话,那我觉得还挺棒的。
面对多流程节点编码,如果使用英文大写不能直观的一眼看出这是哪个节点,第一是英文喜好问题,同一个语义每个人对单词的喜好程度不一样,第二是大写可读性问题,全文大写降低了可读性,但如果是中文枚举则大大不一样,当然,只限枚举。
代码语言:javascript复制 Component.add(Enum.不含税xxx.code);
Component.add(Enum.发票xxx.code);
Component.add(Enum.发票xxx.code);
Component.add(Enum.xxx.code);
Component.add(Enum.产品xxx.code);
Component.add(Enum.员工自付报xxx.code);
Component.add(Enum.票面xxx.code);
Component.add(Enum.民航发展xxx.code);
Component.add(Enum.燃油附xxx.code);
Component.add(Enum.退xxx.code);
Component.add(Enum.所在xxx.code);
Component.add(Enum.是否退xxx.code);
Component.add(Enum.自付xxx.code);
Component.add(Enum.开票xxx.code);
Component.add(Enum.校验码后xxx.code);
Component.add(Enum.多张图像xxx.code);
......
286行
!OrderSourceEnum.地采用车.desc().equals(signShippedOrderDetailDO.getOrderSource())
面对如此大数量的枚举,如果单凭外层定义,不能直观的一眼选出对应枚举。
属性赋值不了?
字段命名如下
代码语言:javascript复制@ApiModelProperty("百度经度")
private String bCustomerLongitude;
当使用lombok对前端字段属性赋值会赋值为空
因为lombok无论首字母是否大写都会转换为大写,但命名实际是小写,则转换有问题,需自定义setget
代码如下
代码语言:javascript复制
@JsonProperty(value = "bCustomerLongitude")
public String getBCustomerLongitude() {
return bCustomerLongitude;
}
这个问题大家可以自行尝试,针对lombok的属性赋值问题。
BigDecimal自带小数位数函数
业务场景中针对签收小数点问题,做了一个校验,如果定义拣货小数位为3,则签收小数位应小于等于3,所有涉及到小数位数判断问题,当时是没有用自定义函数,是直接判断小数点后位数的
代码语言:javascript复制
String str = signQty.stripTrailingZeros().toPlainString();
int i = 0;
if(str.contains(".")){
i = str.length() - (str.indexOf(".") 1);
}
if(openStatus != null && openStatus.equals(1) &&(i > precision)){
throw new TMSException(ErrorCodeEnum.HD50001034, precision);
}
首先判断方式不合理,针对此字段可能为空或下标越界问题,应直接用函数获取,考虑到会有.000或者.210这种情况,应先对该字段进行无效0清除再获取小数位
代码语言:javascript复制
int scale = signQty.scale();
public static void main(String[] args) {
BigDecimal b1 = new BigDecimal("2.30");
BigDecimal b2 = new BigDecimal("2.3");
System.out.println(b1.scale());
System.out.println(b2.scale());
}
控制台输出
2
1