package com.insightfullogic.java8.examples.chapter4;
import java.util.function.Supplier;
public class Logger {
private boolean debug = true;
public boolean isDebugEnabled() {
return debug;
}
public void debug(String message) {
if (isDebugEnabled()) {
System.out.println(message);
}
}
public void example() {
// BEGIN debug_optimised
Logger logger = new Logger();
if (logger.isDebugEnabled()) {
logger.debug("Look at this: " + expensiveOperation());
}
// END debug_optimised
}
private String expensiveOperation() {
return "";
}
// BEGIN debug_lambda
public void debug(Supplier<String> message) {
if (isDebugEnabled()) {
debug(message.get());
}
}
// END debug_lambda
public void exampleWithLambda() {
// BEGIN debug_optimised_lambda
Logger logger = new Logger();
logger.debug(() -> "Look at this: " + expensiveOperation());
// END debug_optimised_lambda
}
}