powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Лямбда-выражения
12 сообщений из 37, страница 2 из 2
Лямбда-выражения
    #38594351
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schwamaytonМне нравится текущая реализация Java lamdbas. В ней нету new и сопутствующих накладных на работу с memory.
Есть т.к. invokeDynamic создает java.lang.invoke.CallSite
Может не создаёт а использует?
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38594435
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schwamaytonМне нравится текущая реализация Java lamdbas. В ней нету new и сопутствующих накладных на работу с memory.
Есть т.к. invokeDynamic создает java.lang.invoke.CallSite

Класс создаётся, объект- нет.
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38594655
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как же тогда лямбда занет о контексте? Если лямбда - это вызов статического метода, то как она этот контекст туда пробрасывает? через аргументы?
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38594698
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For AllА как же тогда лямбда занет о контексте?

КАК-ТО :)
Ещё раз- сейчас лямбда- это статический метод основного класса. Все переменные класса видятся очевидным образом. Переменные верхнего метода- как-то сделали, тут сложностей особо нет. А класс создаётся для getClass() и т.п.
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38595025
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For AllА как же тогда лямбда занет о контексте? Если лямбда - это вызов статического метода, то как она этот контекст туда пробрасывает? через аргументы?
А как-бы никак.
Для лямбды просто необязательно писать final у тех переменных что используются в лямбде.
На самом деле они неявно подразумеваются и в случае попытки исправить - ошибка.
Зато букаф меньше.
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38595030
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев Для лямбды просто необязательно писать final у тех переменных что используются в лямбде.
На самом деле они неявно подразумеваются и в случае попытки исправить - ошибка.
Effective Final к вопросу захвата контекста отношение имеет посредственное.
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38595036
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominКласс создаётся, объект- нет.
Наоборот же.
Объект создаётся. Ведь в результате мы имеем экземпляр.
А вот класс не создаётся. Создаётся метод, который на уровне реализации JVM может любым способом быть связан с экземляром (объектом).
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38595038
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schwaЕсть т.к. invokeDynamic создает java.lang.invoke.CallSite
Экземпляр анонимного класса создаётся при каждом вызове. А CallSite только один раз для определенной лямбды.
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38595039
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczEffective Final к вопросу захвата контекста отношение имеет посредственное.
Визуально создает ощущение. А на самом деле нет. Но может For All имел ввиду что-то еще?
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38595041
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominКАК-ТО :)
Ещё раз- сейчас лямбда- это статический метод основного класса. Все переменные класса видятся очевидным образом. Переменные верхнего метода- как-то сделали, тут сложностей особо нет. А класс создаётся для getClass() и т.п.
Какой класс создаётся?
Вот тут во второй половине доклада есть немного о реализации
http://jeeconf.com/archive/jeeconf-2013/materials/jdk8-lambda/
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38595730
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевBlazkowiczEffective Final к вопросу захвата контекста отношение имеет посредственное.
Визуально создает ощущение. А на самом деле нет. Но может For All имел ввиду что-то еще?
Я имел ввиду следующее: имеется метод возвращающий лямбду

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@FunctionalInterface
interface Formula {
    double value(double x);
}
...
Formula multiplier(double a) {
    return (x) -> a * x;
}
...
multiplier(5).value(10); // должно вернуть 50
multiplier(3).value(10); // должно вернуть 30



Тут лямбда зависит от параметров создающего её метода (double a).

Если реализация лямбды (т.е. тело: (x)->a*x) - это некий статический метод, то как тогда внутри этого тела становится доступным конкретне значение параметра (double a)?
...
Рейтинг: 0 / 0
Лямбда-выражения
    #38595756
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For AllЕсли реализация лямбды (т.е. тело: (x)->a*x) - это некий статический метод, то как тогда внутри этого тела становится доступным конкретне значение параметра (double a)?
http://jeeconf.com/archive/jeeconf-2013/materials/jdk8-lambda/
Перемотайте на 36:44 - вроде все захваченные переменные перемещаются в аргументы метода.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Лямбда-выражения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]