static A ccopyFields2_fromGen(O x, A y, Iterable fields) { if (x == null || y == null) ret y; for (S field : unnull(fields)) { O o = getOpt(x, field); cset(y, field, o); } ret y; }