, builder factory - . .
, parse , node, ?
public class Node<T> {
private T defaultValue;
private Function<String, T> parser;
public Node(T defaultValue,
Function<String, T> parser) {
this.defaultValue = defaultValue;
this.parser = parser;
}
public T getValue()
{
try
{
String input = "true";
return parser.apply(input);
} catch (Exception e) {
return defaultValue;
}
}
}
node,
Node<Boolean> node = new Node<>(s -> Boolean.parseBoolean(s))
, node - .
- . 2.
Java 8 Function lambdas , Java 1.0, .
public interface Function<I, O> {
O apply(I);
}
- , .. - , .
Node<Boolean> node = new Node<>(new Function<String, Boolean>() {
public Boolean apply(String s) {
return Boolean.parseBoolean(s);
}
});
2
.
public class NodeFactory {
private static final Function <String, Boolean> BOOLEAN_PARSER = s -> Boolean.parseBoolean(s);
.
private NodeFactory() {
}
public static Node<Boolean> booleanNode(boolean defaultValue){
return new Node<Boolean>(defaultValue,
BOOLEAN_PARSER);
}
}
public class BooleanNode extends Node<Boolean> {
public BooleanNode(boolean defaultValue) {
super(defaultValue,
s -> Boolean.parseBoolean(s));
}
}
Node - , .