static A mapMethodLike switchIfShorterInField(S field, A newOne, A oldOne) { ret switchIfShorterInField(field, newOne, oldOne, null); } static A mapMethodLike switchIfShorterInField(S field, A newOne, A oldOne, Runnable onSwitch) { ret oldOne == null ? with(onSwitch, newOne) : newOne == null ? oldOne : cmp(l(getOpt(newOne, field)), l(getOpt(oldOne, field))) < 0 ? with(onSwitch, newOne) : oldOne; }