我是java 8的新手。我有字符串列表(列表消息代码)和字符串(代码)。我正在尝试为下面的逻辑编写java 8功能方式代码。
if(messagecodes.contains(code)){
callMethod1(message);
} else{
callMethod2(message);
}
我创建了自己的类,如下所示
public class OptionalExt<T> {
private final Optional<T> optional;
private Predicate<T> test;
public OptionalExt(final T optional) {
this.optional = Optional.ofNullable(optional);
}
public static <T> OptionalExt<T> of(final T t) {
return new OptionalExt<>(t);
}
public OptionalExt<T> condition(final Predicate<T> theTest) {
this.test = theTest;
return this;
}
public OptionalExt<T> when(final Consumer<T> consumer) {
optional.filter(test).ifPresent(consumer);
return this;
}
public void otherwise(final Consumer<T> consumer) {
optional.filter(test.negate()).ifPresent(consumer);
}
}
我正在使用上面这类,
OptionalExt
.of(code)
.condition((codee) -> codes.contains(codee))
.when((code1) -> callMethod1(code1))
.otherwise((code2) -> callMethod2(code2));
还有其他方法以更多功能的方式完成上述逻辑。