本文主要介绍Java中,使用lambda表达式实现if else条件判断的方法代码。

1、自己写代码实现

1)return this的实现

public MyClass ifExist(Consumer<Element> consumer) {
if (exist()) {
consumer.accept(this);
}
return this;
}
public MyClass ifNotExist(Consumer<Element> consumer) {
if (!exist()) {
consumer.accept(this);
}
return this;
}

调用方法

element.ifExist(el -> {
//do something
})
.ifNotExist(el -> {
//do something else
});

2)返回中间类型的实现

interface Else<T>
{
public void otherwise(Consumer<T> consumer); // 'else' is a keyword
}
class DefaultElse<T> implements Else<T>
{
private final T item;
DefaultElse(final T item) { this.item = item; }
public void otherwise(Consumer<T> consumer)
{
consumer.accept(item);
}
}
class NoopElse<T> implements Else<T>
{
public void otherwise(Consumer<T> consumer) { }
}
public Else<MyClass> ifExist(Consumer<Element> consumer) {
if (exist()) {
consumer.accept(this);
return new NoopElse<>();
}
return new DefaultElse<>(this);
}

调用方法

element.ifExist(el -> {
//do something
})
.otherwise(el -> {
//do something else
});

2、使用Java中方法实现

1)Java 8中方法

Optional<Elem> element = ...
element.ifPresent(el -> System.out.println("Present " + el);
System.out.println(element.orElse(DEFAULT_ELEM));

2)Java 9中方法

element.ifPresentOrElse(el -> System.out.println("Present " + el,
() -> System.out.println("Not present"));