Как я могу использовать публичные переменные вне метода в двух разных файлах классов? - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть 2 файла класса.Class_login.java и Class_Company.java.У меня есть xpath, хранящийся в другом месте в файле свойств.Для загрузки этого файла свойств в Class_login.java написан метод.

static Properties objprop1 = new Properties();
public static FileInputStream fileInputS = null;

static void propManager() throws IOException {
        fileInputS = new FileInputStream("C:\\Test-Automation\\FinanceSys\\myproj\\src\\test\\resources\\xpath.properties");
        objprop1.load(fileInputS);
}

objprop1 объявлено вне метода в Class_login.java.Мне нужно снова загрузить этот файл в Class_Company.java.Если я использую его как Class_login.PropertyManager(); и использую тот же objprop1, файл не загружается и xpath не найдены.Поэтому я создал тот же метод с другим именем (static void PropertyManager() {) иpublic static Properties objprop = new Properties();Я знаю, что это не правильный путь.Но как это можно сделать иначе?В основном методе Class_Company.java я вызывал эти методы отдельно, чтобы я не получал ошибку null xpath, как ранее.

public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub

    Class_login LogFeature = new Login();
    Class_Company CC = new CCompany();
    **Class_Company.PropertyManager();**
    LogFeature.OpenBrowser("CH32");
    LogFeature.EnterURL("http://localhost:90/AppFin");
    LogFeature.PageMaximise();
    LogFeature.EnterUserName("uname");
    LogFeature.EnterPassword("abcd!@");
    LogFeature.ClickLoginButton();
    Thread.sleep(2000);
    **Class_Company.propManager();**
    CC.clickNewCompany("Manage");

Пожалуйста, скажите мне правильный способ сделать это.Я хочу использовать objprop в обоих файлах классов и только один раз в Class_Company.java.и не в два раза, как указано выше.

1 Ответ

0 голосов
/ 17 декабря 2018

Это базовый пример, который вам нужен:

Объявление глобальной переменной:

Class variableCollection {
public static string data;
}

Вы можете использовать эти переменные, расширяя класс Orссылки на объекты.

class login extends variableCollection{


}

ИЛИ

class login{
variableCollection objvar = new variableCollection();

objvar.data = "";

}

Вы можете использовать одну и ту же переменную в нескольких классах одним и тем же способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...