从eclipse

时间:2016-05-18 17:17:20

标签: java eclipse

我想设置一个主类,它将字符串传递给Eclipse上的提示对话框中的另一个类。

所以我在"运行配置"上设置了一个程序参数。作为$ {string_prompt}变量。当我运行程序时,会出现输入对话框,我输入一个值。

然后我从String [] args参数的索引0中检索主类的输入:

if ( args.length > 0 ) {b = new BrowserHandler(args[0]);}

并将其传递给我的BrowserHandler类构造函数,该构造函数检索它并将String设置为输入值。

我先后尝试从主类调用一个名为SetBrowser()的方法。它必须检查上述字符串的有效性:

    public static void main(String[] args) throws Exception {

        BrowserHandler b;

        if ( args.length > 0 ) {b = new BrowserHandler(args[0]);}
        else b = new BrowserHandler();

        b.setBrowser();
        if ( !b.valid ) System.out.println("Browser not valid");

        else {
            //do something
        }

    }

}

BrowserHandler类:

public class BrowserHandler {

public String browser;
Boolean valid = true;

public BrowserHandler(String browser){
    this.browser = browser.toLowerCase();
}

public void setBrowser() {
        if ( this.browser == "firefox" ) { 
            System.out.println("...setting firefox");
            this.driver = new FirefoxDriver(); 
        }
        else valid = false;

}

问题是browserhandler类的String浏览器获取变量,但是当检查字符串的值时,它总是会使条件失败,将valid设置为false。

我无法理解为什么,尽管已经尝试调试它。 有什么建议可能导致我的原因吗?

1 个答案:

答案 0 :(得分:1)

setBrowser方法的if语句中,==运算符应替换为this.browser.equals("firefox")。 原因是==运算符比较引用而不是比较的两个变量的实际值。