@Nullable
    public <T> Class<Provider<T>> getFactoryClass(Class<T> classDefinition) {
        //noinspection unchecked
        return (Class)factoryClasses.getRootValue().get(classDefinition);
    }
@ Nullable public < T > Class < Provider < T > > getFactoryClass ( Class < T > classDefinition ) { return ( Class ) factoryClasses . getRootValue ( ) . get ( classDefinition ) ; }
Returns a factory class to instantiate a certain class.

@param classDefinition the class that is to be instantiated.
@param <T> the type of the class to be instantiated.

@return a factory method for the specified class.