Skip to content

Instantly share code, notes, and snippets.

@johnzeringue
Last active August 29, 2015 14:08
Show Gist options
  • Save johnzeringue/dab6eda0b0acbe2c4018 to your computer and use it in GitHub Desktop.
Save johnzeringue/dab6eda0b0acbe2c4018 to your computer and use it in GitHub Desktop.
Preinitialization Pattern in Java 8 - Example 2
import java.util.function.Consumer;
public class A<T extends A> {
public A(Consumer<T> preinitialization) {
preinitialization.accept((T) this);
initializeUsingSubclassMethod();
}
}
import java.util.function.Consumer;
public class B extends A<B> {
private String variable;
public B(String variable) {
super(self -> {
self.variable = variable;
});
}
public void methodUsedBySuper() {
// do something with variable
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment