走过最长的路,是阿里JSONObject的套路
欢迎使用Markdown编辑器
需求:根据配置的字段,校验用户信息是否为空,并将为空的字段输出。
/**
* @author syg
*/
@Data
public class QuesType {
/**
* 字段缺失
*/
private StringBuilder fieldMiss = new StringBuilder();
/**
* 协议缺失
*/
private StringBuilder protocolMiss = new StringBuilder();
/**
* 字段是否缺失
* @return
*/
public boolean quesType() {
String res = fieldMiss.append(protocolMiss).toString();
return res.length() > 0;
}
public static void main(String[] args) {
QuesType ty = new QuesType();
ty.getProtocolMiss().append("pro01,pro02,pro03");
JSONObject.toJSONString(ty);
JSONObject.toJSONString(ty);
JSONObject.toJSONString(ty);
System.out.println(ty.getFieldMiss());
}
你会发现fieldMiss的值多好几次protocolMiss。
原因:JSONObject会调用is开头的方法
声明!!!quesType()方法只在业务代码中调用了一次。