Groovy Check Array包含字符串与文字字符串和Concat String不相同



当您检查列表或数组中的文字字符串时,效果很好。但是,当您检查列表或数组中的Concat字符串时,它会返回不正确的结果。

直接比较文字字符串和con弦字符串时,它们被认为是相同的。

我用这些代码在詹金斯管道上失败了,直接在Groovy 1.8.9上尝试了结果,结果是相同的。

在此代码中,issue_file = "issue-${signal_dc_key}.json",然后contains返回false

def issued_list = ["names":["issue-something-DC-VV.json","issue-else-DC-VV.json"]]
            def signal_dc_key = "something-DC-VV"
            def issue_file = "issue-${signal_dc_key}.json"
            println issue_file                                         // issue-something-DC-VV.json
            println issue_file == "issue-something-DC-VV.json"                  // true
            println issue_file == "issue-${signal_dc_key}.json"                 // true
            println issued_list["names"].contains("${issue_file}")              // false
            println issued_list["names"].contains(issue_file)                   // false
            println issued_list["names"].contains("issue-something-DC-VV.json")   // true

在此代码中,issue_file = "issue-something-DC-VV.json"contains返回true

def issued_list = ["names":["issue-something-DC-VV.json","issue-else-DC-VV.json"]]
            def signal_dc_key = "something-DC-VV"
            def issue_file = "issue-something-DC-VV.json"
            println issue_file                                         // issue-something-DC-VV.json
            println issue_file == "issue-something-DC-VV.json"                 // true
            println issue_file == "issue-${signal_dc_key}.json"                  // true
            println issued_list["names"].contains("${issue_file}")              // false
            println issued_list["names"].contains(issue_file)                   // true
            println issued_list["names"].contains("issue-something-DC-VV.json")   // true

似乎通过更改此行

来解决
def issue_file = "issue-${signal_dc_key}.json"

to

def issue_file = new String("issue-${signal_dc_key}.json" )

,但詹金斯不允许使用new String

感谢Michael Rutherfurd的评论,toString()的作品,并在Jenkins中允许。

def issue_file = "issue-${signal_dc_key}.json".toString()

最新更新