2014-09-29 84 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