亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用帶有 groovy 對方付費電話的 FindAll 機箱時出現問題

使用帶有 groovy 對方付費電話的 FindAll 機箱時出現問題

慕少森 2022-07-20 20:54:55
時髦的問題。我有以下測試示例。我需要搜索一個集合并在 date1 的同一天收集所有事件。我在對方付費電話的末尾添加了一個 findAll 附件,因為我無法在集合中檢查同一天。我看到錯誤“無法從空列表訪問 last() 元素”檢查 .last() 方法是否列表為空,即使在條件檢查中使用 ?.last() 也是如此。如果我從對方付費電話中刪除 findAll,它會正常工作,我不明白為什么。如果不在列表中,我總是使用 collect 調用創建一個新實例,而不是最后使用 findAll 附件進行此條件檢查。為什么這會有所作為?Date date1 = new Date();List<Event> lEvents = test.collect("events").findAll{ d ->                         DateUtils.isSameDay(d.testdate, d1);                      }Event newEvent = lEvents?.last() ?: new Event();
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

錯誤消息是說列表是空的,而不是空的,所以?in?.last()沒有任何區別。出于顯而易見的原因,在嘗試檢索空列表的最后一個元素時,總是會拋出“空列表”異常。您findAll正在過濾掉所有內容并返回一個空列表,這會觸發錯誤。

你說你總是以這種方式測試一個空列表,所以不清楚你的其他代碼如何能夠last()在不拋出的情況下調用一個空列表。你肯定有collect()返回空列表的情況嗎?

要解決此特定情況,您可以執行以下操作:

Event newEvent = (lEvents.size() > 0) ? lEvents.last() : new Event()


查看完整回答
反對 回復 2022-07-20
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號