I'm trying to incorporate javaslang's pattern matching in a classic factory pattern:
public void log(String message, Integer level) {
Match(level).of(
Case($(INFO), run(() -> logger.info(message))), //
Case($(DEBUG), run(() -> logger.debug(message))), //
Case($(WARNING), run(() -> logger.warn(message))), //
Case($(ERROR), run(() -> logger.error(message))), //
Case($(), run(() -> logger.info(message))));
}
Yet this spills and all the methods are run (I get four identical calls to different levels of the logger).