0

我创建了一个 JAR 文件,它接受 3 个参数并返回一个字符串,但我的代码似乎无法识别参数值,即使它们是正确的。

我分配参数:

if (args.length > 1)
 {
    raftcode = args[0];
    Selection =args[1];
    Option = args[2];
    System.out.println("Getting arguments");

 }

我检查了它们的值是否正确,但程序从不输入 if 语句

if (Selection == "Sightings")
{  
            //Get sightings text
}

else if (Selection == "Captures")
{
            //Get captures text
}

else if (Selection == "Myrafts")
{
            //Get my rafts text

}
else if (Selection == "Other")
 {
            // Get other text

}

如果我在没有 args 的情况下运行代码,它会使用默认测试变量返回字符串,并且我可以输出参数值。

任何关于错误的建议都会很棒:)

4

2 回答 2

3

您应该使用.equals而不是==如下

if ("Sightings".equals(Selection))
{  
        //Get sightings text
}
于 2013-06-19T18:25:22.617 回答
2

正如其他人所说,您应该将字符串与.equalsnot进行比较====如果您在任何地方都使用字符串,则可以将其与字符串进行比较,String.intern但这仍然是有风险的,因为如果您忘记了一个实例,它就会失败。

如果您广泛使用命令行参数,请查看Commons CLI

于 2013-06-19T18:36:18.883 回答