我已将安装类型屏幕添加到我的install4j安装程序中。根据所选安装类型,下载并解压缩某些文件。这些操作分为四组,位于“安装”下 为了控制这个执行流程,我在每个组上使用Condition表达式,具体取决于所选的安装类型
以下是代码:
if ((String)context.getVariable("sys.installationTypeId") == "424")
return true;
return false;
问题是,即使我选择安装类型,它也始终返回false(未执行)。
有谁知道为什么会这样?也许是
(String)context.getVariable("sys.installationTypeId")
不是字符串?也许它是一个阵列?我该如何正确地写出条件?
谢谢!
Solutuon找到了!
我找到了两个解决此问题的方法
if (Integer.parseInt(context.getVariable("sys.installationTypeId").toString()) == 424)
return true;
return false;
if (((String)context.getVariable("sys.installationTypeId")).equals("424"))
return true;
return false;
答案 0 :(得分:0)
您无法将字符串与等号运算符进行比较,您必须使用equals
。等于运算符检查双方是否引用同一个对象,动态创建的字符串通常不是这种情况。
我建议将条件表达式设置为
context.getVariable("sys.installationTypeId").equals("424")
您不需要if语句和返回值,表达式的计算结果为布尔值。