Saya sedang menguji beberapa fitur baru Java 8 dan menyalin contoh ke IDE saya (Eclipse awalnya, lalu IntelliJ) seperti yang ditunjukkan di sini
Eclipse tidak menawarkan dukungan apa pun untuk ekspresi lambda, dan IntelliJ terus melaporkan kesalahan
Ekspresi Lambda tidak didukung pada tingkat bahasa ini
Saya ingin tahu apakah ini masalah dengan pemasangan, kode, atau dukungan saya.
java
intellij-idea
lambda
java-8
Czipperz
sumber
sumber
Jawaban:
Dalam IntelliJ IDEA:
Di
File Menu
→Project Structure
→Project
, ubahProject Language Level
ke8.0 - Lambdas, type annotations etc.
Untuk Android 3.0+ Go
File
→Project Structure
→Module
→app
dan Di Properties Tab aturSource Compatibility
danTarget Compatibility
ke1.8 (Java 8)
Tangkapan layar:
sumber
File Menu → Project Structure → Modules
, tetapi secara default akan sama dengan tingkat bahasa Proyek.android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
File
->Project Structure
->Module you want to support lambdas
dan atur Kompatibilitas Sumber dan Kompatibilitas Target menjadi 1.8Anda harus mengubah kode sumber Level Bahasa juga pada tab Sumber (bagian Modul).
sumber
Solusi ini berfungsi di Android Studio 3.0 atau yang lebih baru.
Ubah keduanya menjadi
Source Compatibility
danTarget Compatibility
1.8
Anda juga dapat mengkonfigurasinya secara langsung di file build.gradle yang sesuai
sumber
Untuk intellij 13, Cukup ubah sendiri tingkat bahasa Proyek
8.0
dengan mengikuti navigasi.Modul tingkat lang
Saya juga harus memperbarui
Modules lang level
ketika tidak ada plugin pakar untukjava compiler
.Tapi ini
Module lang level
akan secara otomatis diperbaiki jika sudah adamaven plugin
untuk itu,Setelah perubahan semuanya terlihat baik
sumber
Di Android studio canary build (3. +), Anda dapat melakukan hal berikut:
File -> Struktur Proyek -> Lihat di Bagian Modul, ada nama-nama modul kelas Anda. Klik pada modul di mana Anda ingin meningkatkan versi java ke 1.8. -> Ubah "Kompatibilitas Sumber" dan "Kompatibilitas Target" menjadi 1,8 dari 1,7 atau lebih rendah. Jangan mengubah apa pun. -> Klik Terapkan
sekarang gradle akan disinkronkan kembali dan kesalahan Anda akan dihapus.
sumber
Cukup tambahkan
compileOptions
aplikasi build.gradle milik Anda:sumber
Untuk pengguna terbaru yang menggunakan Android studio 3.0.1 atau lebih tinggi. Cukup klik Alt + Enter dan tingkatkan tingkat bahasa Anda menjadi 8,0 - Lambdas, ketik anotasi, dll.
sumber
Jika Anda mendapatkan Tidak didukung di Bahasa 5 , periksa ini: (Bagi saya itu ada di bagian Modul )
sumber
7.0 tidak mendukung ekspresi lambda. Cukup tambahkan ini ke aplikasi gradle Anda untuk mengubah level bahasa Anda menjadi 8.0:
sumber
Sebenarnya, dukungan Eclipse untuk Java 8 tersedia: lihat di sini dan di sini .
sumber
Untuk mengkompilasi dengan Java 8 (lambdas dll) di IntelliJ IDEA 15;
CTRL + ALT + SHIFT + S
atau Struktur File / ProyekBuka tab Project
Atur Project SDK ke versi java yang kompatibel (1.8)
Atur level bahasa Proyek ke 8
Buka tab Modul
Setel Level bahasa ke 8, klik OK
CTRL + ALT + S
atau File / PengaturanBuild, Execution, Deployment / Compiler / Java Compiler
Ubah Target bytecode versi ke 1.8, klik OK
sumber
Menggunakan: IntelliJ IDEA 2017.1.4 Build # IU-171.4694.23
Mengubah level bahasa melalui Pengaturan Proyek / tab Project tidak melakukan apa-apa. Alih-alih memukul Alt+ Enterdan memilih "Atur level bahasa ke 8 - Lambdas, ketikkan anotasi, dll." dan itu diselesaikan secara otomatis.
sumber
Seperti yang ditunjukkan Stephen C, Eclipse Kepler (4.3) memiliki dukungan Java 8 ketika patch diinstal (instruksi instalasi di sini )
Setelah terinstal, Anda harus memberi tahu proyek Anda untuk menggunakan java 8. Pertama tambahkan JDK ke gerhana:
Kemudian beri tahu proyek untuk menggunakan JDK 1.8:
sumber
Periksa pengaturan di bawah ini:
File-> Struktur Proyek-> Tab Proyek.
File-> Struktur Proyek-> Modul.
File-> Pengaturan (atau Pengaturan Lainnya-> Preferensi untuk proyek baru dalam versi Ide yang lebih baru)
Masalah Anda mungkin termasuk dalam salah satu kategori yang ditentukan di atas.
sumber
Proyek yang sama (
Android Studio 3.3.2
,gradle-4.10.1-all.zip
,compileSdkVersion 28
,buildToolsVersion '28.0.3'
) bekerja dengan baik pada mesin Windows cepat baru dan garis bawahJava 8
barang-barang dengan warna merah pada lama Ubuntu 18.04 laptop (namun proyek kompilasi tanpa kesalahan pada Ubuntu).Hanya dua hal yang saya ubah agar berhenti bergarisbawahi dengan merah tidak termasuk
incremental true
dandexOptions
di
app
- tingkatbuild.gradle
.sumber
Di intellij 14, pengaturan berikut bekerja untuk saya. Pengaturan Intellij14
sumber
Bahkan setelah menerapkan pengaturan spesifik proyek yang ditentukan di atas pada IntelliJ dan Eclipse, itu masih gagal bagi saya!
Apa yang berhasil bagi saya adalah penambahan plugin pakar dengan sumber dan target dengan pengaturan 1,8 di POM XML:
sumber
Kemungkinan Penyebab # 1 (sama dengan 3 jawaban pertama untuk pertanyaan ini): Pengaturan Struktur Proyek
File> Struktur Proyek> Di bawah Pengaturan Proyek, buka Proyek> atur Project SDK ke 1.8 (dengan versi 65 atau lebih tinggi, terbaru adalah 112) dan atur Level Bahasa Proyek ke 8.
File> Struktur Proyek> Di Bawah Pengaturan Platform, buka Proyek> memastikan bahwa jalur beranda JDK Anda diatur ke 1.8 (dengan versi 65 atau lebih, yang terbaru 112).
Jika hal di atas tidak berhasil, periksa versi bytecode target dari kompiler Anda dan beralih ke Kemungkinan Penyebab # 2.
Kemungkinan Penyebab # 2: Compiler
Semoga sukses :)
sumber
Bagi saya tidak ada solusi yang disediakan bekerja.
Ini harus menjadi pilihan terakhir Anda: -> Buka file .iml proyek Anda, ubah LANGUAGE_LEVEL menjadi JDK_1_8 atau versi apa pun yang Anda inginkan. -> Jika ini tidak membantu, Anda harus grep "JDK" di direktori root proyek Anda dan menemukan file yang berisi pengaturan versi dan mengaturnya ke versi pilihan Anda.
sumber
Ctrl + Alt + Shift + S dan kemudian dari proyek pilih tingkat bahasa 1.8, baca lebih lanjut tentang Ekspresi Lambda di sini
sumber
Untuk mendapatkan dukungan dari Ecplise untuk ekspresi lambda:
sumber
Pertama periksa versi JDK yang Anda gunakan, itu harus lebih tinggi dari 1,8.
Jika sudah maka lanjutkan untuk melakukan langkah-langkah di bawah ini.
Ubah tingkat Bahasa Proyek dan modul di Intellij .
Proyek
sumber
jawaban ini tidak berfungsi untuk intelliJ baru yang diperbarui ... untuk intelliJ baru ..
Pergi ke -> file -> Struktur Proyek -> Perpustakaan Global ==> atur ke JDK 1.8 atau versi yang lebih tinggi.
juga File -> Struktur proyek ---> proyek ===> set "manual bahasa proyek" ke 8
juga File -> Struktur proyek ---> project SDK ==> 1.8
Ini harus mengaktifkan ekspresi lambda untuk proyek Anda.
sumber