Некоторое время назад у меня было похожее требование. Это не имеет ничего общего с Гуавой, но вы можете сделать что-то вроде этого, чтобы иметь возможность аккуратно построить Map
, используя свободный строитель.
Создание базового класса, расширяющего Map.
public class FluentHashMap<K, V> extends LinkedHashMap<K, V> {
private static final long serialVersionUID = 4857340227048063855L;
public FluentHashMap() {}
public FluentHashMap<K, V> delete(Object key) {
this.remove(key);
return this;
}
}
Затем создайте беглого строителя методами, которые удовлетворяют вашим потребностям:
public class ValueMap extends FluentHashMap<String, Object> {
private static final long serialVersionUID = 1L;
public ValueMap() {}
public ValueMap withValue(String key, String val) {
super.put(key, val);
return this;
}
... Add withXYZ to suit...
}
Затем вы можете реализовать это так:
ValueMap map = new ValueMap()
.withValue("key 1", "value 1")
.withValue("key 2", "value 2")
.withValue("key 3", "value 3")