[英]Enforcing and using static variables in sub-classes with Java
我想在超類靜態方法中使用來自子類的靜態變量。 似乎我無法確保變量存在,因為它是靜態的,我不能以這種方式強制執行靜態成員。
最終,我想做類似的功能:
protected class Page {
static WebDriver driver = new ChromeWebDriver();
public static boolean onPage () {
return driver.findElements(By.id(PAGE_NAME)) != null;
}
}
public class HomePage extends Page {
static String PAGE_NAME = "home";
}
public class LoginPage extends Page {
static String PAGE_NAME = "login";
}
...
HomePage.onPage();
...
這種事情的最佳模式是什么?
注意:主要要求是:
你不能這樣做。 但是,您在基類中有一個 final 字段,並強制每個驅動類向超級構造函數提供一個參數,如下所示
public abstract class Page {
final String pageName;
public Page(String title) {
pageName = title;
}
//the rest implementation
}
然后你可以讓你的頁面像
public class HomePage extends Page
{
public HomePage()
{
super("home");
}
}
另一種選擇是在基頁中提供抽象 getPageName 並在驅動類中實現它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.