public <T extends InteractionAwareFixture> T create(Class<T> clazz, Class<?>[] constructorTypes, Object[] constructorArgs) {
        MethodInterceptor callback = createCallback();

        T result;
        if (FACTORIES.containsKey(clazz)) {
            Factory factory = FACTORIES.get(clazz);
            result = createUsingFactory(callback, factory, constructorTypes, constructorArgs);
        } else {
            result = createFirst(callback, clazz, constructorTypes, constructorArgs);
            FACTORIES.put(clazz, (Factory) result);
        }
        return result;
    }
public < T extends InteractionAwareFixture > T create ( Class < T > clazz , Class < ? > [ ] constructorTypes , Object [ ] constructorArgs ) { MethodInterceptor callback = createCallback ( ) ; T result ; if ( FACTORIES . containsKey ( clazz ) ) { Factory factory = FACTORIES . get ( clazz ) ; result = createUsingFactory ( callback , factory , constructorTypes , constructorArgs ) ; } else { result = createFirst ( callback , clazz , constructorTypes , constructorArgs ) ; FACTORIES . put ( clazz , ( Factory ) result ) ; } return result ; }
Creates new instance of fixture.
@param clazz class to instantiate.
@param constructorTypes types of arguments used to determine which constructor to use.
@param constructorArgs arguments to pass to constructor of clazz.
@param <T> type to create.
@return instance of clazz (subclass, actually) that will have #aroundSlimInvoke() invoked on each method call.