public <T> T getViewRepresentation(Class<T> T, boolean forceRefresh) {
    	ScenarioGlobals currentScenarioGlobals = SenBotContext.getSenBotContext().getCucumberManager().getCurrentScenarioGlobals();
    	T foundView = currentScenarioGlobals == null ? null : (T) currentScenarioGlobals.getAttribute(T.getName());
    	if(foundView == null || forceRefresh) {
    		foundView = PageFactory.initElements(getAssociatedTestEnvironment().getWebDriver(), T);
    		if(currentScenarioGlobals != null) {    			
    			currentScenarioGlobals.setAttribute(T.getName(), foundView);
    		}
    	}
    	return foundView;
    }
public < T > T getViewRepresentation ( Class < T > T , boolean forceRefresh ) { ScenarioGlobals currentScenarioGlobals = SenBotContext . getSenBotContext ( ) . getCucumberManager ( ) . getCurrentScenarioGlobals ( ) ; T foundView = currentScenarioGlobals == null ? null : ( T ) currentScenarioGlobals . getAttribute ( T . getName ( ) ) ; if ( foundView == null || forceRefresh ) { foundView = PageFactory . initElements ( getAssociatedTestEnvironment ( ) . getWebDriver ( ) , T ) ; if ( currentScenarioGlobals != null ) { currentScenarioGlobals . setAttribute ( T . getName ( ) , foundView ) ; } } return foundView ; }
Check {@link PageFactory} for how these Objects are instantiated using the {@link FindBy} and {@link FindBys} annotations.
Senbot will cache your objects in the Scenario globals so that they only get initialized once

@param T
@param forceRefresh if true we will always reinstantiate
@return instanciated T