我对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也提供了其他功能接口。