[英]Logging true condition of big if(.. || ..) statement
我使用 Java 並且我想在日志中確定哪個語句導致條件為真。 如果有很多 OR,我會變得很大。 如下所示:
if (StringUtils.isTrue(foo.getArg1)
|| StringUtils.isTrue(foo.getArg1)
|| StringUtils.isTrue(foo.getArg2)
|| foo.getArg3.equals("T")
|| foo.getList1.isEmpty()
|| //and so on...) {
return true; }
我想得到類似的東西:
if (StringUtils.isTrue(foo.getArg1)) {
log.info("Arg1 made statement true")
return true;
}
if (StringUtils.isTrue(foo.getArg2)) {
log.info("Arg2 made statement true")
return true;
}
if (foo.getList1().isEmpty()) {
log.info("List1 made statement true")
return true;
} //etc...
是否有任何棘手的方法可以以更通用的方式實現這樣的效果,而無需大量 if 語句?
如果傳遞給它的boolean
為true
,則您可以使用輔助記錄器方法將給定消息寫入日志:
public boolean static logIfTrue (boolean value, String msg) {
if (value) {
log.info(msg);
}
return value;
}
並使用它:
return logIfTrue(StringUtils.isTrue(foo.getArg1),"Arg1 made statement true") ||
logIfTrue(StringUtils.isTrue(foo.getArg2),"Arg2 ...") ||
logIfTrue(foo.getArg3.equals("T"),"...") ||
logIfTrue(foo.getList1.isEmpty(),"...") ||
//and so on...;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.