如何使用 Groovy 在 ArrayList 中添加一个字符串?

How to add one more string in the ArrayList using Groovy?

我正在使用 SoapUI 来测试 REST 服务。如果存在 v_manageCustomText 值,我想添加,然后我需要将其添加到 dispositionNames 中,否则按原样添加 dispositionNames。

 def dispositionNames = ["ApproveFraud","ApproveNonFraud","System Error"]
   log.info(dispositionNames.getClass().getSimpleName())
   log.info(context.testCase.getPropertyValue("v_manageCustomText"))
   if(context.testCase.getPropertyValue("v_manageCustomDisposition") !="")
    {
    value = context.testCase.getPropertyValue("v_manageCustomDisposition") 
    dispositionNames = dispositionNames.add(value)
    log.info dispositionNames
    log.info(dispositionNames.getClass().getSimpleName())
    }

我得到了以下结果。看起来我添加值后它变成了布尔类型。

Mon Oct 30 15:48:43 IST 2017:INFO:CustomDisposition1509102136431
Mon Oct 30 15:48:43 IST 2017:INFO:true
Mon Oct 30 15:48:43 IST 2017:INFO:Boolean

Groovy是一个"weakly typed language",这意味着一方面你不需要定义变量的类型。另一方面,如果您为变量分配不同类型的值,则该变量可以更改 mid-运行。

http://groovy-lang.org/semantics.html

如@adamcooney 所述,您使用了以下行:

dispositionNames = dispositionNames.add(value)

它执行将value添加到dispositionNames的操作。然后returnstrue表示add操作成功

然后将此 true 分配回 dispositionNames var,这将其值从 List 更改为 Boolean。这就是您看到此行为的原因。