![](/img/trans.png)
[英]How to use LinkedHashMap collection in Groovy Script - SoapUI?
[英]How to add LinkedHashMap elements to a list and use groupBy method in Groovy
我想發布三個不同版本的代碼,其中一個有效,但我不能采用這種方法。
版本1:不工作
List<LinkedHashMap> listOfRecords
LinkedHashMap a = [product: 'p1', cluster: 'c1', salesorg: 's1']
LinkedHashMap b = [product: 'p2', cluster: 'c2', salesorg: 's2']
LinkedHashMap c = [product: 'p2', cluster: 'c3', salesorg: 's2']
listOfRecords.add(a)
listOfRecords.add(b)
listOfRecords.add(c)
println("listOfRecords : "+listOfRecords)
println("listOfRecords groupby : "+listOfRecords.groupBy { it.cluster })
腳本在第 6 行失敗,出現錯誤:處理此頁面時出錯。
Version2 :工作,但我不想在聲明期間將 LinkedHashMap 分配給列表。
LinkedHashMap a = [product: 'p1', cluster: 'c1', salesorg: 's1']
LinkedHashMap b = [product: 'p2', cluster: 'c2', salesorg: 's2']
LinkedHashMap c = [product: 'p2', cluster: 'c3', salesorg: 's2']
List listOfRecords=[a]
//listOfRecords.add(a)
listOfRecords.add(b)
listOfRecords.add(c)
println("listOfRecords : "+listOfRecords)
println("listOfRecords groupby : "+listOfRecords.groupBy { it.cluster })
版本3:不工作。 由於它有一個驗證錯誤,我嘗試了 version1 和 version2
//List<LinkedHashMap> listOfRecords
LinkedHashMap a = [product: 'p1', cluster: 'c1', salesorg: 's1']
LinkedHashMap b = [product: 'p2', cluster: 'c2', salesorg: 's2']
LinkedHashMap c = [product: 'p2', cluster: 'c3', salesorg: 's2']
List listOfRecords;
//List listOfRecords=[a]
listOfRecords.add(a)
listOfRecords.add(b)
listOfRecords.add(c)
println("listOfRecords : "+listOfRecords)
println("listOfRecords groupby : "+listOfRecords.groupBy { it.cluster })
收到來自規划服務器的驗證錯誤。 '錯誤:Groovy 腳本編譯失敗,內部錯誤:編譯錯誤:[靜態類型檢查] - 沒有這樣的屬性:類的集群:java.lang.Object @ 第 13 行,第 60 列。規則 SalesPLN.SALESREP.linkedhashmap'
提前致謝。
運行您的原始腳本會產生空指針異常,因為您從未初始化listOfRecords
(例如,這應該解決它: def listOfRecords = []
)。 代碼嘗試add
到listOfRecords
,這會觸發 NPE。 您的第二個示例確實初始化了您的 var 並因此起作用。
但是,為什么您會收到如此無用的錯誤消息,這超出了我的理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.