2016-12-07 93 views
-1

我想訪問另一個類的類靜態變量。我有一個方法有兩個字符串參數:類的名稱和靜態字段的名稱。基於這些參數,我想返回該特定類的字段值。訪問另一個類的靜態變量

Class SignUp { 
    public static WebElement userName; 
    public static WebElement email; 
    public static WebElement phoneNumber; 
} 

Class Login{ 
    public static WebElement userName; 
    public static WebElement password; 
} 

Class MyClass{ 
    String Ele = SupportingClass.getElement("Login","userName"); 
    //Ele should contain the value of 'userName' on the 'Login' class 
} 

Class SupportingClass{ 
    public static String getElement(String name,String pageName){ 

//Need to get the pagename.name field here 

    } 
} 
+1

雖然這不會編譯,這是不是一個理由給它一個downvote。我認爲這是一個有效的問題。他只想根據類名和字段名來檢索靜態字段的值。 – Fortega

回答

1

您可以使用反射此:

public static String getElement(String name,String pageName){ 
    Class<?> clazz = Class.forName(pageName); 
    Field myField = myClass.getDeclaredField(name); 
    return myField.get(null); 
} 

頁面名應該是完全分類的類別名稱,因此包括包名。

代碼沒有經過測試,所以這裏可能有些語法錯誤...

+0

反思?爲什麼? – Sergi

+0

因爲他有一個getElement方法,在該方法中他傳遞一個類的名稱和一個字段的名稱。他想根據這些名稱檢索字段值。 – Fortega

+0

我必須承認在閱讀原始問題時我並不在意。所以我很抱歉對你的答案下了決心。如果你編輯它,我會upvote它(現在不能這樣做) – Sergi