如果情况下,更好的方法可以替换许多条件



我对java很新。

如果有一种更换许多的方法,我想被告知如果语句。

问题:假设我有一个验证器类,可以在传入消息中检查标签。每个标签都可以是强制性的,或不适合我的应用。

而不是使用许多if语句:

if (isExistTag1)
else if (isExistTag2)
else if (isExistTag3)
.
.
.
else if (isExistTagN)

什么可以改进?

谢谢。

许多可能性中的一个是使用列表:

private List<String> validTags = Arrays.asList(
    tag1, //
    tag2, //
    tag3);
public boolean isTagValid(String tag) {
    return validTags.contains(tag);
}

如果您的条件之一是true,其余的是始终 false,则可以使用Runnable s的数组或ArrayList。从本质上讲,您将拥有所有逻辑,这些逻辑生活在其自身方法内部的每个条件内,这些逻辑在数组或ArrayList内定义。然后,您只需要将boolean的条件值转换为从0开始的int范围。在此时,您可以像这样引用ArrayList

List<Runnable> conditions = new ArrayList<>();
conditions.add(new Runnable()->{/*code to execute if condition 0 is true*/});
conditions.add(new Runnable()->{/*code to execute if condition n is true*/});

conditions.get(translatedBoolean).run();

这是一种方法更优雅,如果您的最后一个条件是true

,则会消除不必要的处理时间

如果您需要返回值或通过参数,Java也提供了其他功能接口。

最新更新