import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;
class Ideone {
public static void main
(String[] args
) { Map
<String, String
> map
= new HashMap
<>(); add(map, "foo", "bar");
GenericRecord
<String, String
> record
= new GenericRecord
<>(); add(record, "foo", "bar");
}
static <K, V> void add(Map<K, V> map, K key, V value) {
add(map::put, key, value);
}
static <K, V> void add(GenericRecord<K, V> record, K key, V value) {
add(record::put, key, value);
}
static <K, V> void add(BiConsumer<K, V> consumer, K key, V value) {
consumer.accept(key, value);
}
}
class GenericRecord<K, V> {
private final Map<K, V> map = new HashMap<>();
void put(K key, V value) {
map.put(key, value);
}
@Override
return "GenericRecord(map = " + map + ")";
}
}
aW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwppbXBvcnQgamF2YS51dGlsLk1hcDsKaW1wb3J0IGphdmEudXRpbC5mdW5jdGlvbi5CaUNvbnN1bWVyOwoKY2xhc3MgSWRlb25lIHsKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICBNYXA8U3RyaW5nLCBTdHJpbmc+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKICAgIGFkZChtYXAsICJmb28iLCAiYmFyIik7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4obWFwKTsKCiAgICBHZW5lcmljUmVjb3JkPFN0cmluZywgU3RyaW5nPiByZWNvcmQgPSBuZXcgR2VuZXJpY1JlY29yZDw+KCk7CiAgICBhZGQocmVjb3JkLCAiZm9vIiwgImJhciIpOwogICAgU3lzdGVtLm91dC5wcmludGxuKHJlY29yZCk7CiAgfQoKICBzdGF0aWMgPEssIFY+IHZvaWQgYWRkKE1hcDxLLCBWPiBtYXAsIEsga2V5LCBWIHZhbHVlKSB7CiAgICBhZGQobWFwOjpwdXQsIGtleSwgdmFsdWUpOwogIH0KCiAgc3RhdGljIDxLLCBWPiB2b2lkIGFkZChHZW5lcmljUmVjb3JkPEssIFY+IHJlY29yZCwgSyBrZXksIFYgdmFsdWUpIHsKICAgIGFkZChyZWNvcmQ6OnB1dCwga2V5LCB2YWx1ZSk7CiAgfQoKICBzdGF0aWMgPEssIFY+IHZvaWQgYWRkKEJpQ29uc3VtZXI8SywgVj4gY29uc3VtZXIsIEsga2V5LCBWIHZhbHVlKSB7CiAgICBjb25zdW1lci5hY2NlcHQoa2V5LCB2YWx1ZSk7CiAgfQp9CgpjbGFzcyBHZW5lcmljUmVjb3JkPEssIFY+IHsKICBwcml2YXRlIGZpbmFsIE1hcDxLLCBWPiBtYXAgPSBuZXcgSGFzaE1hcDw+KCk7CgogIHZvaWQgcHV0KEsga2V5LCBWIHZhbHVlKSB7CiAgICBtYXAucHV0KGtleSwgdmFsdWUpOwogIH0KCiAgQE92ZXJyaWRlCiAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKICAgIHJldHVybiAiR2VuZXJpY1JlY29yZChtYXAgPSAiICsgbWFwICsgIikiOwogIH0KfQ==