Testowałem nowe funkcje Java 8 i skopiowałem przykład do mojego IDE (początkowo Eclipse, potem IntelliJ), jak pokazano tutaj
Eclipse nie oferował żadnej obsługi wyrażeń lambda, a IntelliJ ciągle zgłaszał błąd
Wyrażenia lambda nie są obsługiwane na tym poziomie języka
Chciałbym wiedzieć, czy jest to problem z moją instalacją, kodem lub wsparciem.
java
intellij-idea
lambda
java-8
Czipperz
źródło
źródło
Odpowiedzi:
W IntelliJ IDEA:
W
File Menu
→Project Structure
→Project
zmieńProject Language Level
na8.0 - Lambdas, type annotations etc.
Android 3.0+ Go
File
→Project Structure
→Module
→app
i własnościach Tab zestawuSource Compatibility
iTarget Compatibility
do1.8 (Java 8)
Zrzut ekranu:
źródło
File Menu → Project Structure → Modules
, ale domyślnie będzie on taki sam, jak poziom języka projektu.android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
File
->Project Structure
->Module you want to support lambdas
i ustaw Zgodność źródła i Zgodność docelową na 1.8Powinieneś zmienić kod źródłowy Poziom języka także na zakładce Źródło (część Moduły).
źródło
To rozwiązanie działa w systemie Android Studio 3.0 lub nowszym.
Zmień zarówno na, jak
Source Compatibility
iTarget Compatibility
na1.8
Możesz go również skonfigurować bezpośrednio w odpowiednim pliku build.gradle
źródło
W przypadku Intellij 13 wystarczy zmienić poziom języka projektu na
8.0
następującą nawigację.Poziom językowy modułu
Musiałem także zaktualizować,
Modules lang level
gdy nie było wtyczki maven dlajava compiler
.Ale
Module lang level
byłoby to automatycznie naprawione, jeśli już jestmaven plugin
na to,Po zmianach wszystko wygląda dobrze
źródło
W Android Studio Canary Build (3. +) możesz wykonać następujące czynności:
Plik -> Struktura projektu -> Szukaj w sekcji Moduły, są nazwy modułów twojej klasy. Kliknij moduł, w którym chcesz zaktualizować java do wersji 1.8. -> Zmień „Zgodność źródła” i „Zgodność docelowa” na 1.8 z 1.7 lub niższej. Nie zmieniaj niczego innego. -> Kliknij Zastosuj
teraz grad zsynchronizuje się ponownie, a twój błąd zostanie usunięty.
źródło
Po prostu dodaj
compileOptions
w build.gradle swoją aplikację:źródło
Dla najnowszych użytkowników korzystających z Android Studio 3.0.1 lub nowszego. Wystarczy kliknąć Alt + Enter i zaktualizować swój poziom języka do 8.0 - Lambdas, wpisz adnotacje itp.
źródło
Jeśli nie otrzymujesz wsparcia w języku 5 , sprawdź to: (Dla mnie było to w sekcji Moduły )
źródło
7.0 nie obsługuje wyrażeń lambda. Po prostu dodaj to do klasy aplikacji, aby zmienić poziom języka na 8.0:
źródło
W rzeczywistości dostępna jest obsługa Eclipse dla Java 8: patrz tutaj i tutaj .
źródło
Aby skompilować z Javą 8 (lambda itp.) W IntelliJ IDEA 15;
CTRL + ALT + SHIFT + S
lub Struktura pliku / projektuOtwórz kartę Projekt
Ustaw Project SDK na kompatybilną wersję Java (1.8)
Ustaw poziom języka projektu na 8
Otwórz kartę Moduły
Ustaw Poziom języka na 8, kliknij OK
CTRL + ALT + S
lub Plik / UstawieniaKompilacja, wykonanie, wdrożenie / kompilator / kompilator Java
Zmień docelową wersję kodu bajtowego na 1.8, kliknij OK
źródło
Korzystanie: IntelliJ IDEA 2017.1.4 Kompilacja # IU-171.4694.23
Zmiana poziomu języka na karcie Ustawienia projektu / Karta Projekt nic nie zrobiła. Zamiast tego naciśnij Alt+ Enteri wybierz „Ustaw poziom języka na 8 - Lambdas, wpisz adnotacje itp.” i rozwiązało się to automatycznie.
źródło
Jak zauważył Stephen C, Eclipse Kepler (4.3) obsługuje Javę 8 po zainstalowaniu łatki ( tutaj instrukcje instalacji )
Po zainstalowaniu musisz poinformować swoje projekty, aby używały java 8. Najpierw dodaj JDK do środowiska eclipse:
Następnie powiedz projektowi, aby używał JDK 1.8:
źródło
Sprawdź poniższe ustawienia:
Plik-> Struktura projektu-> Karta Projekt.
Plik-> Struktura projektu-> Moduły.
Plik-> Ustawienia (lub Inne ustawienia-> Preferencje dla nowych projektów w nowszej wersji Pomysłu)
Twój problem może należeć do jednej z wyżej określonych kategorii.
źródło
Ten sam projekt (
Android Studio 3.3.2
,gradle-4.10.1-all.zip
,compileSdkVersion 28
,buildToolsVersion '28.0.3'
) działa poprawnie na nowym szybkim komputerze z systemem Windows i podkreślająJava 8
rzeczy kolorem czerwonym na starym laptopie Ubuntu 18.04 (jednak projekt kompiluje bez błędów na Ubuntu).Jedyne dwie rzeczy, które zmieniłem, aby zmusić go do zaprzestania podkreślania przez kolor czerwony, wykluczały
incremental true
idexOptions
na
app
poziomie -build.gradle
.źródło
W intellij 14 działały dla mnie następujące ustawienia. Ustawienia Intellij14
źródło
Nawet po zastosowaniu wyżej określonych ustawień specyficznych dla projektu w IntelliJ, a także w Eclipse, nadal mi się nie udawało!
działało dla mnie dodanie wtyczki maven ze źródłem i celem z ustawieniem 1.8 w POM XML:
źródło
Możliwa przyczyna nr 1 (taka sama jak w przypadku pierwszych 3 odpowiedzi na to pytanie): Ustawienia struktury projektu
Plik> Struktura projektu> W Ustawieniach projektu przejdź do Projekt> ustaw Project SDK na 1.8 (w wersji 65 lub wyższej, najnowsza to 112) i ustaw Poziom języka projektu na 8.
Plik> Struktura projektu> W Ustawieniach platformy przejdź do Projekt> upewnij się, że twoja ścieżka główna JDK jest ustawiona na 1.8 (w wersji 65 lub wyższej, najnowsza to 112).
Jeśli powyższe nie działa, sprawdź docelową wersję kodu kompilatora i przejdź do Możliwej przyczyny # 2.
Możliwa przyczyna # 2: Kompilator
Wszystkiego najlepszego :)
źródło
Dla mnie żadne z dostarczonych rozwiązań nie zadziałało.
To powinna być ostatnia deska ratunku: -> Otwórz plik .iml twojego projektu zmień LANGUAGE_LEVEL na JDK_1_8 lub dowolną wersję, którą chcesz. -> Jeśli to nie pomogło, należy grep "JDK" w katalogu głównym projektu i znaleźć plik zawierający ustawienie wersji i ustawić go na preferowaną wersję.
źródło
Ctrl + Alt + Shift + S, a następnie z projektu wybierz poziom języka 1.8, czytaj więcej o wyrażeniach lambda tutaj
źródło
Aby uzyskać obsługę Ecplise dla wyrażeń lambda:
źródło
Najpierw sprawdź używaną wersję JDK, powinna ona być wyższa niż 1.8.
Jeśli tak, wykonaj poniższe czynności.
Zmień poziom języka projektu i modułów w Intellij .
Projekt
źródło
te odpowiedzi nie działają dla nowych zaktualizowanych intelliJ ... dla nowych intelliJ ..
Przejdź do -> plik -> Struktura projektu -> Globalne biblioteki ==> ustaw na JDK 1.8 lub nowszą wersję.
także Plik -> Struktura projektu ---> Projekty ===> ustaw „Podręcznik języka projektu” na 8
także Plik -> Struktura projektu ---> projekt sdk ==> 1.8
Powinno to umożliwić wyrażenie lambda dla twojego projektu.
źródło