Подтвердить что ты не робот

Java 8 Lambdas не работает, все остальное от Java 8 работает, хотя

Я узнал, что Java 8 официально выпущена сейчас. Кажется, мне нужен Eclipse Luna 4.4, чтобы он работал. Поэтому я загрузил Luna и установил его. Я также импортировал все мои проекты из моего другого Eclipse, все работало, как ожидалось. Когда я захотел попробовать Java 8, я быстро обнаружил, что мне нужно сначала установить его. После того, как я установил его, мне удалось изменить JRE 8 на значение по умолчанию.

Мой вопрос: почему я могу использовать новый API дат и времени, но я не могу использовать новые выражения лямбда?

Некоторая информация, которая может быть полезна:

  • Я использую Mac
  • Я очень уверен, что API времени работает (даже небольшая Java Doc Box говорит об этом с 1,8)

Может ли это быть связано с тем, что я не устанавливал Eclipse с Java 8?

4b9b3361

Ответ 1

Во-первых, вам не нужно использовать Luna - там патч для Kepler, который отлично работает.

Во-вторых, часть "совместимости с источником" в диалоговом окне "Компилятор Java" должна быть 1,8. В противном случае, даже если вам разрешено использовать библиотечные функции Java 1.8, вы не сможете использовать функции языка. (Это не просто лямбда - там есть ссылки на методы, статические методы в интерфейсах и методы по умолчанию). Здесь, где искать:

Java 1.8 compiler settings

Было бы редко, если вы захотите использовать функции библиотеки из версии 1.8, но сохраните совместимость с исходным/классным файлом с 1.7 или более ранней версией, но я думаю, это было бы полезно, если бы вы писали код, который нужно запускать на разных JRE, но вы могли бы иметь некоторые реализации функций, которые требовали Java 1.8 и просто не использовались бы на ранних JRE.