static MultiMap multiMapFromKeyAndValueField(Collection l, S keyField, S valueField) { new MultiMap mm; if (l != null) for (O o : l) mm.put((A) getOpt(o, keyField), (B) getOpt(o, valueField)); ret mm; } static MultiMap multiMapFromKeyAndValueField(S keyField, S valueField, Collection l) { ret multiMapFromKeyAndValueField(l, keyField, valueField); }