static O getOptDyn(DynamicObject o, S field) { if (o == null || o.fieldValues == null) null; O val = o.fieldValues.get(field); ret val != null ? val : getOpt(o, field); } static O getOptDyn(O o, S field) { ret o instanceof DynamicObject ? getOptDyn((DynamicObject) o, field) : getOpt(o, field); }