Как заставить Eclipse понимать лямбда

 
 
 
Сообщения:3
Здравствуйте.

Помогите пожалуйста. Начал изучать Java недавно. Подошел к возможностям Java8, конкретно к лямбда-выражениям.
Однако похоже мой Eclipse их не понимает. Ниже мой метод main, он в строке "users.sort((o1, o2) -> o1.age - o2.age);"
выдает кучу ошибок(Multiple markers at this line. - o1 cannot be resolved to a variable - Syntax error on token "-", -- expected
- Syntax error on token ",", . expected - o2 cannot be resolved to a variable - o1 cannot be resolved to a variable).\

Что делать?

Версия Java: 8 Update 211
Версия Eclipse: Kepler, Build id 20130614-0229


public static void main(String[] args)
{

List<user> users = Arrays.asList(new user("user1", 47), new user("user2", 10), new user("user3", 18));

for(user u : users)
System.out.println(u.toString());

users.sort((o1, o2) -> o1.age - o2.age); // Здесь ошибки

for(user u : users)
System.out.println(u.toString());

}
 
 
Сообщения:934
public class Ubung8_Lambda
{

    public static void main( String[] args )
    {
        List<User> users = Arrays.asList( new User( "user1", 47 ), new User( "user2", 10 ), new User( "user3", 18 ) );

        for( User u : users )
        {
            System.out.println( u.toString() );
        }

        users.sort( ( o1, o2 ) -> o1.age - o2.age ); 

        for( User u : users )
        {
            System.out.println( u.toString() );
        }
    }
}

class User
{

    String name;
    int age;

    public User( String name, int age )
    {
        this.name = name;
        this.age = age;
    }

}


у меня жрёт и добавки просит. проверь доступ к полям
 
 
Сообщения:3
Если имеется в виду доступ к полям класса User, то там нормално все. name и age без модификаторов, то есть package visible. На всякий случай попробовал public-результат тот же.
Поэтому мысль появилась - может быть дело в версии Eclipse или в отсутствии обновления какого-нибудь. Может Kepler не умеет?
 
 
Сообщения:934
посмотри версию явы проекта. лямбды появились в восьмой.
 
 
Сообщения:3
Спасибо за ответ и намеки.
Короче разобрался я. У меня был просто Kepler, он Java8 не понимает. Нужен был Kepler SR2 с патчем для Java8.
Я скачал его, запустил, ну и там уже в свойствах проекта появилась возможность установить Compiler compliance level в 1.8(в старом Kepler было только 1.7).
Теперь все нормально.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет