|
|
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
schwamaytonМне нравится текущая реализация Java lamdbas. В ней нету new и сопутствующих накладных на работу с memory. Есть т.к. invokeDynamic создает java.lang.invoke.CallSite Может не создаёт а использует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 11:54 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
schwamaytonМне нравится текущая реализация Java lamdbas. В ней нету new и сопутствующих накладных на работу с memory. Есть т.к. invokeDynamic создает java.lang.invoke.CallSite Класс создаётся, объект- нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 12:55 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
А как же тогда лямбда занет о контексте? Если лямбда - это вызов статического метода, то как она этот контекст туда пробрасывает? через аргументы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 14:40 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
For AllА как же тогда лямбда занет о контексте? КАК-ТО :) Ещё раз- сейчас лямбда- это статический метод основного класса. Все переменные класса видятся очевидным образом. Переменные верхнего метода- как-то сделали, тут сложностей особо нет. А класс создаётся для getClass() и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 15:01 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
For AllА как же тогда лямбда занет о контексте? Если лямбда - это вызов статического метода, то как она этот контекст туда пробрасывает? через аргументы? А как-бы никак. Для лямбды просто необязательно писать final у тех переменных что используются в лямбде. На самом деле они неявно подразумеваются и в случае попытки исправить - ошибка. Зато букаф меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 18:35 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев Для лямбды просто необязательно писать final у тех переменных что используются в лямбде. На самом деле они неявно подразумеваются и в случае попытки исправить - ошибка. Effective Final к вопросу захвата контекста отношение имеет посредственное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 18:39 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
Alexey TominКласс создаётся, объект- нет. Наоборот же. Объект создаётся. Ведь в результате мы имеем экземпляр. А вот класс не создаётся. Создаётся метод, который на уровне реализации JVM может любым способом быть связан с экземляром (объектом). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 18:41 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
schwaЕсть т.к. invokeDynamic создает java.lang.invoke.CallSite Экземпляр анонимного класса создаётся при каждом вызове. А CallSite только один раз для определенной лямбды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 18:43 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
BlazkowiczEffective Final к вопросу захвата контекста отношение имеет посредственное. Визуально создает ощущение. А на самом деле нет. Но может For All имел ввиду что-то еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 18:43 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
Alexey TominКАК-ТО :) Ещё раз- сейчас лямбда- это статический метод основного класса. Все переменные класса видятся очевидным образом. Переменные верхнего метода- как-то сделали, тут сложностей особо нет. А класс создаётся для getClass() и т.п. Какой класс создаётся? Вот тут во второй половине доклада есть немного о реализации http://jeeconf.com/archive/jeeconf-2013/materials/jdk8-lambda/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 18:44 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевBlazkowiczEffective Final к вопросу захвата контекста отношение имеет посредственное. Визуально создает ощущение. А на самом деле нет. Но может For All имел ввиду что-то еще? Я имел ввиду следующее: имеется метод возвращающий лямбду Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Тут лямбда зависит от параметров создающего её метода (double a). Если реализация лямбды (т.е. тело: (x)->a*x) - это некий статический метод, то как тогда внутри этого тела становится доступным конкретне значение параметра (double a)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 14:10 |
|
||
|
Лямбда-выражения
|
|||
|---|---|---|---|
|
#18+
For AllЕсли реализация лямбды (т.е. тело: (x)->a*x) - это некий статический метод, то как тогда внутри этого тела становится доступным конкретне значение параметра (double a)? http://jeeconf.com/archive/jeeconf-2013/materials/jdk8-lambda/ Перемотайте на 36:44 - вроде все захваченные переменные перемещаются в аргументы метода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 14:25 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2127445]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
189ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 511ms |

| 0 / 0 |
