将安装程序变量从安装类型屏幕传递到条件表达式

时间:2013-08-16 09:23:35

标签: install4j

我已将安装类型屏幕添加到我的install4j安装程序中。根据所选安装类型,下载并解压缩某些文件。这些操作分为四组,位于“安装”下 为了控制这个执行流程,我在每个组上使用Condition表达式,具体取决于所选的安装类型

以下是代码:

if ((String)context.getVariable("sys.installationTypeId") == "424")
    return true;
return false;

问题是,即使我选择安装类型,它也始终返回false(未执行)。

有谁知道为什么会这样?也许是

(String)context.getVariable("sys.installationTypeId") 

不是字符串?也许它是一个阵列?我该如何正确地写出条件?

谢谢!


Solutuon找到了!

我找到了两个解决此问题的方法

  1. 使用installationTypeId的数值并将其转换为整数:
  2. if (Integer.parseInt(context.getVariable("sys.installationTypeId").toString()) == 424) return true; return false;

    1. 在if语句中使用equals()方法。它允许使用自定义ID。
    2. if (((String)context.getVariable("sys.installationTypeId")).equals("424")) return true; return false;

1 个答案:

答案 0 :(得分:0)

您无法将字符串与等号运算符进行比较,您必须使用equals。等于运算符检查双方是否引用同一个对象,动态创建的字符串通常不是这种情况。

我建议将条件表达式设置为

context.getVariable("sys.installationTypeId").equals("424")

您不需要if语句和返回值,表达式的计算结果为布尔值。