Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
filter(Predicate<? super T> predicate)
filter(new Predicate<Object>() {
public boolean test(Object o) {
return true;
}
});
filter(o -> true)
Function<Double, Double> f = Math::sin;
Function<Double, Double> g = f.andThen(Math::sqrt).andThen((x) -> 2 * x);
System.out.println(g.apply(Math.PI / 6));
invokedynamic со вспомогательными методами в том же классе.Runnable lambda = () -> System.out.println("Hello from lambda");
System.out.println(lambda.getClass());
Runnable anonymous = new Runnable() {
@Override
public void run() {
System.out.println("Hello from anonymous");
}
};
Runnable lambda = () -> System.out.println("Hello from lambda");
System.out.println(anonymous.getClass().isAnonymousClass()); // true
System.out.println(lambda.getClass().isAnonymousClass()); // false
Не нужно всё сводить к сахару, а то у нас сводилка слипнется. ;)
Вам важен сам факт генерации класса?Нет. Мне важен факт понимания реализации.
ну это уж точно не сахарА где я это говорил?
реализации совсем без класса.Вот об этом я и спросил. Нам в любом случае нужен объект, реализующий интерфейс Predicate. Как в текущей реализации jvm может быть объект, реализующий интерфейс, но при этом «совсем без класса» я не понимаю. Т.е. мне видится, что это фундаментальное ограничение платформы. Как вы «Даже не думая» можете его обойти?
Метод выливания чайникаЧто за метод?
invokedynamic
Java 8 Released