sclass ClassOrName { Class c; S name; *() {} *(Class *c) {} *(S *name) {} Class asClass() { ret assertNotNull(c); } Class asClassOpt() { ret c; } }