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

时间:2017-10-30 10:20:03

标签: groovy soapui

我正在使用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

1 个答案:

答案 0 :(得分:1)

Groovy是一种弱类型的语言",这意味着一方面你不需要定义一个变量的类型。另一方面,如果为其分配不同类型的值,则变量可以在中途运行。

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

正如@adamcooney所提到的,你使用了这一行:

dispositionNames = dispositionNames.add(value)

执行将value添加到dispositionNames的操作。然后返回true以指示add操作是成功的。

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