Skip to content

Instantly share code, notes, and snippets.

@xenoterracide xenoterracide/traits.java
Last active Aug 29, 2015

Embed
What would you like to do?
Traits in Java 8
interface Logger {
default void log(String message ) {
_logger().info( message );
}
Logger _logger();
}
class InfoLogger implements Logger
Logger log = LoggerFactory.getLogger(InfoLogger.class);
@Override
Logger _logger() {
return log;
}
}
class DebugLogger implements Logger {
Logger log = LoggerFactory.getLogger(DebugLogger.class);
@Override
Logger _logger() {
return log;
}
}
class Logged { // logged will work with any of the above implementations
void logHelloWorldWithSimpleLogger( Logger logger ) {
logger.log("Hello, World");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.