我创建了一个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
}
如果我运行不带参数的代码,它返回使用默认测试变量的字符串,我可以输出参数值。
如果有什么建议就太好了:)
您应该使用.equals
而不是==
,如下所示
if ("Sightings".equals(Selection))
{
//Get sightings text
}
正如其他人所说,您应该与.equals
而不是==
比较字符串。字符串可以与==
进行比较,如果你在任何地方都使用String.intern
,但这仍然是有风险的,因为如果你忘记了单个实例,它会失败。
如果您正在广泛使用命令行参数,请查看Commons CLI