I don't get why the bean.getTypes() should contain MySuperInterface.class instead of the actual ParameterizedType MySuperInterface<Number>.
After all getTypes() returns a Set<Type> and not a Set<Class>!