public ObjectType getObjectType(Object obj) { throw new UnsupportedOperationException("not a keyed type"); }
public abstract ObjectType getObjectType(Object obj);
    public ObjectType getObjectType(Object obj) {        throw new UnsupportedOperationException("not a keyed type");    }