I am getting the following error:
Bound mismatch: The generic method constructPage(WebDriver, int, Class) of type Page is not applicab
For the purposes of your constructPage method, you could just use
constructPage
protected static final > T constructPage(...) { Page> p = null; //... }