Eclipse, lambda и Java 8 шаблони

Има ли причина помощните средства за съдържание на Eclipse да не работят в/около ламбда? В нормален случай Eclipse обикновено прави това след като напише точка:

въведете описание на изображението тук

Което работи добре, както навсякъде другаде. Но само няколко реда по-късно не получавам нищо:

въведете описание на изображението тук

И двата обекта са от един и същи тип. За съжаление ги използвам през цялото време, тъй като те правят всичко много по-бързо и не разбирам защо работи в една ламбда, а не в друга.


person breakline    schedule 28.12.2015    source източник
comment
Никаква идея. Вероятно грешка в Eclipse. Но това, което мога да кажа е, че можете да използвате Comparator.comparing(Person::getAge) вместо (Person a, Person b) -> a.age.compareTo(b.age)   -  person JB Nizet    schedule 28.12.2015
comment
да, забравих да спомена, че просто се занимавах с ламбда и изпробвах различни опции, но благодаря.   -  person breakline    schedule 28.12.2015


Отговори (1)


Опит за обяснение (попитахте за причина): анализирането на ламбда изрази в Java е техническо предизвикателство, тъй като граматиката на Java не е създадена за генератори на анализатори. Завършването на кода, OTOH, неизбежно зависи от анализирането на непълен код, т.е. трябва да се използва евристика, за да продължи анализирането след синтактична грешка. Тези двамата просто не си сътрудничат добре. В резултат на това в някои ситуации вашият непълен код ще изглежда като боклук за компилатора и следователно помощникът за съдържание не може да разбере какви биха били смислените предложения.

Приложените евристики непрекъснато се подобряват. Препоръчвам да изпробвате вашите примери на скорошна компилация на етап. Ако проблемът все още съществува, можете да помогнете на екипа, като подадете сигнал за грешка предоставяне на примерен код и описание на вашите очаквания и какво действително поведение наблюдавате.

person Stephan Herrmann    schedule 05.01.2016