static S getString(Map map, O key) { ret map == null ? null : (S) map.get(key); } static S getString(L l, int idx) { ret (S) get(l, idx); } static S getString(O o, O key) { if (o instanceof Map) ret getString((Map) o, key); if (key instanceof S) ret (S) getOpt(o, (S) key); throw fail("Not a string key: " + getClassName(key)); }