繁体   English   中英

java:S1067 - 减少表达式中使用的条件运算符 (5) 的数量(最多允许 3 个)

[英]java:S1067 - Reduce the number of conditional operators (5) used in the expression (maximum allowed 3)

如何减少条件运算符的数量? 声纳显示主要问题,例如减少表达式中使用的条件运算符 (5) 的数量(最多允许 3 个),但所有条件都必须保留在此块中:

private String processfromOrigin(Object value) {
    if ((value instanceof A) || (value instanceof B)
            || (value instanceof C) || (value instanceof D)
            || (value instanceof E)
            || (value instanceof F)) {
        return ((baseDto) processo).getProcess();
    } else if (value instanceof G) {
        return ((G) value ).getProcess();
    } else if (value instanceof H) {
        return ((H) value ).getProcess();
    } else {            
        return (String) value ;
    }
}

您可以使用如下代码来简化 if 块中的第一个条件:

import static java.util.Stream.of;
boolean checkABCDEF = of(A.class, B.class, C.class, D.class, E.class, F.class).
                      anyMatch(aClass -> aClass.isInstance(value))

of,你可以把它封装在一个本地方法中:

    private boolean isABCDEF(Object x) {
        return Stream.of(A.class, B.class, C.class, D.class, E.class, F.class).
                      anyMatch(aClass -> aClass.isInstance(x));
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM