如何在两个不同的类文件中的方法外部使用公共变量?

时间:2018-12-16 17:58:37

标签: java selenium variables

我有2个Class文件。 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);
}

objprop1Class_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 :(得分:1)

这是基本示例,您需要:

全局变量声明:

Class variableCollection {
public static string data;
}

您可以通过扩展类或对象引用来使用此变量。

class login extends variableCollection{


}

OR

class login{
variableCollection objvar = new variableCollection();

objvar.data = "";

}

您可以以相同的方式在多个类中使用相同的变量。