2014-09-29 15 views
5

Mam następujący kod, który napisałem w Groovy 1,8Groovy Nieaktualne Metody i Eclipse - rodzaj

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

Mam przeniesione do porywające 2.3.x, i Eclipse (za pomocą wtyczki GroovyEclipse e4.4 dla Juno z wersji snapshot) pokazuje mi, że metoda sort() jest teraz przestarzała dla sort(Collection<T> self), do której należy advice is to use the sort(Iterable<T> self).

Jak mogę teraz łączyć takie metody, aby uniknąć ostrzeżeń o wycofaniu?

Myślałem, że jak spłaszczać() zwraca ArrayList (which is an Iterable) powinno być dobrze. Ponadto widzę, że usunięcie ostrzeżenia powoduje, że usunięcie tego ostrzeżenia wygląda na brzydkie.

Czy to właśnie zaćmienie nie oznacza, że ​​właściwy rodzaj będzie rzeczywiście używany, czy też istnieje jakiś inny sposób wyrażenia mojego łańcucha metod?

Odpowiedz

5

Ostrzeżenia amortyzacyjne są ze względu na fakt, że Eclipse jest odwzorowywać Groovy metody do klasy DefaultGroovyMethods głównie nieaktualnych, który został właśnie zastąpiony przez wielu oddzielnych innych klas, takich jak StringGroovyMethods, ResourceGroovyMethods itp

Wydaje się, że w wersji 2.7.1 of the Groovy plugin, zostało to naprawione ... sprawdź wersję wtyczki, może po prostu musisz uaktualnić.

Jeśli to nie rozwiąże problemu, niestety, chyba że uda ci się zmienić wtyczkę Groovy w mapowanie metod, nie będziesz w stanie pozbyć się ostrzeżeń, o ile wiem. W IntelliJ mam ten sam problem.

+1

Wersja z migawką GRECLIPSE, której używam, to 2.9.1. Myślę, że konkretna poprawka wspomniana w twoim linku służy tylko do tokenizacji(). Po prostu przeżyję to teraz i może zapytam na ich forach, czy dzieje się to za dużo mojego kodu, lub chyba, że ​​ktoś inny to komentuje. Twoje zdrowie. –

+0

Używam wtyczki Groovy Eclipse 2.9.1 i mam podobny błąd - http://stackoverflow.com/questions/28474559/why-is-list-sort-method-striked-through. –