2016-12-07 3 views
-1

Я хочу получить доступ к статической переменной класса из другого класса. У меня есть метод, который имеет два параметра String: имя класса и имя статического поля. Исходя из этих параметров, я хотел бы вернуть значение поля этого конкретного класса.Доступ к статической переменной в другом классе

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

Должен признаться, я не был внимателен, читая оригинальный вопрос. Поэтому я прошу прощения за ваш ответ. Если вы его отредактируете, я выберу его (не могу сделать это сейчас) – Sergi

Смежные вопросы