Семантика отложенной оценки Java - PullRequest
4 голосов
/ 08 декабря 2011

Какова семантика Java отложенной оценки?Существуют ли триггеры, хранящиеся вместе с хранилищами назначений, которые добавляют триггер к семантическому стеку хранилища триггеров, если программа содержит некоторый синтаксис, который символизирует будущую ленивую оценку?и во время выполнения создает ли выполнение программы новый поток для этой конкретной цели или выполнение продолжается в текущем потоке?Также ... Я хотел бы знать, каковы возможные синтаксисы, которые могут вызвать ленивую оценку в Java?

Ответы [ 2 ]

6 голосов
/ 08 декабря 2011

В Java ленивая оценка часто выполняется с помощью абстракций объекта.Для сравнения, оценка кода передается свободно в функциональных языках, что делает лень первоклассной функцией.

В Java, если мы хотим, чтобы значение обновлялось лениво, мы оборачиваем его доступ в метод, гдеуправлять сложностью оценки в этом методе.Некоторые из этих конструкций называются bean-компонентами: http://commons.apache.org/beanutils/api/org/apache/commons/beanutils/package-summary.html.

Часто требуется создать структуру данных, в которой все значения лениво получаются, например, список, в котором каждый элемент лениво оценивается, или карту, гдекаждое значение лениво оценивается.Чтобы сделать это, мы можем создать подкласс и переопределить get (), put () и другие применимые методы из соответствующих классов Java Collection.См. jash cache hashmap expire daily для примера этой стратегии.

3 голосов
/ 08 декабря 2011

У Java нет ленивых вычислений.

Вы имели в виду Scala?

...