2014-09-29 63 views
5

我有下面的代碼,我在Groovy 1.8Groovy的方法已過時和Eclipse - 排序

someListOfLists.flatten().sort().unique() 

我已經搬了常規2.3.x版本寫的,和Eclipse(使用e4.4 GroovyEclipse插件從快照發布的Juno)向我展示了sort()方法現在已被棄用爲sort(Collection<T> self),其中advice is to use the sort(Iterable<T> self)

我現在如何將這樣的方法鏈接在一起以避免棄用警告?

我的想法是,因爲flatten()返回一個ArrayList(which is an Iterable)應該沒問題。此外,我看到

((Iterable) someListOfLists.flatten()).sort().unique() 

刪除警告,但看起來很醜。

那麼這只是eclipse沒有看到正確的排序會被實際使用,還是有其他方式來表達我的方法鏈?

回答

5

的廢棄警告,是由於這樣的事實,Eclipse是映射Groovy的方法大多是過時DefaultGroovyMethods類,它只是由許多不同的其他類,如StringGroovyMethods,ResourceGroovyMethods等取代

看來,在版本2.7.1 of the Groovy plugin,這是固定的...檢查你的插件版本,也許你只需要升級。

如果這樣不能解決問題,不幸的是,除非您可以讓Groovy插件更改方法映射,否則據我所知,您將無法擺脫警告。在IntelliJ中我有同樣的問題。

+1

我正在使用的GRECLIPSE快照版本是2.9.1。我認爲鏈接中提到的特定修復僅適用於tokenize()。我現在只想和它一起生活,也許會在論壇上詢問它是否出現在我的代碼中,或者除非有人對此進行評論。乾杯。 – 2014-09-30 10:27:19

+0

我正在使用Groovy Eclipse插件2.9.1,並且我有類似的錯誤 - http://stackoverflow.com/questions/28474559/why-is-list-sort-method-striked-through。 – 2015-02-12 10:21:26