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

Install4j 将安装程序变量从安装类型屏幕传递到条件表达式,install4j,Install4j,我已将安装类型屏幕添加到install4j安装程序中。根据选定的安装类型,会下载并解压缩某些文件。这些操作分为四组,位于“安装”下 为了控制这个执行流,我根据所选的安装类型对每个组使用条件表达式 代码如下: if ((String)context.getVariable("sys.installationTypeId") == "424") return true; return false; 问题是,即使我选择了安装类型,它也总是返回false(未执行) 有人知道为什么会这样吗?也许

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

代码如下:

if ((String)context.getVariable("sys.installationTypeId") == "424")
    return true;
return false;
问题是,即使我选择了安装类型,它也总是返回false(未执行)

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

(String)context.getVariable("sys.installationTypeId") 
这不是一根绳子吗?也许是一个数组?如何正确地编写条件

谢谢


找到梭罗

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

  • 对installationTypeId使用数值并将其转换为整数:
  • if(Integer.parseInt(context.getVariable(“sys.installationTypeId”).toString())==424)
    返回true;
    返回false

  • 在if语句中使用equals()方法。它允许使用自定义ID
  • if(((字符串)context.getVariable(“sys.installationTypeId”)).equals(“424”))
    返回true;
    
    返回false

    您无法使用相等运算符比较字符串,必须使用
    相等
    。相等运算符检查双方是否引用同一对象,这通常不是动态创建字符串的情况

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

    context.getVariable("sys.installationTypeId").equals("424")
    
    不需要if语句和返回,表达式的计算结果为布尔值