0

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

这是代码:

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

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

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

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

不是字符串吗?也许它是一个数组?如何正确编写条件?

谢谢!


找到解决方案!

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

  1. 对 installationTypeId 使用数值并将其转换为整数:

if (Integer.parseInt(context.getVariable("sys.installationTypeId").toString()) == 424) return true; return false;

  1. 在 if 语句中使用 equals() 方法。它允许使用自定义 ID。

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

4

1 回答 1

0

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

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

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

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

于 2013-08-17T14:14:23.440 回答