Apa antarmuka fungsional Java 8 untuk metode yang tidak mengambil apa pun dan tidak mengembalikan apa pun?
Yaitu, setara dengan C # parameterless Action
dengan void
tipe kembali?
java
java-8
java-stream
Miguel Gamboa
sumber
sumber
Runnable
Spesifikasi antarmuka menunjukkan itu adalah untuk memberikan kode yang dapat dieksekusi keThread
kelas. Tampaknya tidak benar bagi saya untuk menggunakanRunnable
yang tidak dimaksudkan untuk dieksekusi oleh utas; sepertinya menyesatkan.Runnable
didefinisikan sebagaiFunctionalInterface
karena memenuhi spesifikasi antarmuka fungsional dan dapat dibuat menggunakan sintaks lambda. Mengapa tidak membuat antarmuka fungsional Anda sendiri? lihat Runnable , lihat FunctionalInterfaceRunnable
dianotasi dengan@FunctionalInterface
dan (ii) bahkan dalam konteks ekspresi lambda itu akan dieksekusi pada utas: utas di mana lambda dijalankan yang mungkin utas saat ini ...Runnable
itu dimaksudkan untuk digunakan untuk tujuan ini, bukan hanya untuk memasukkan konteks.Buat saja sendiri
dan gunakan seperti ini
dan hasilnya
sumber
@FunctionalInterface hanya mengizinkan metode abstrak metode Karenanya Anda dapat membuat instance antarmuka itu dengan ekspresi lambda seperti di bawah ini dan Anda dapat mengakses anggota antarmuka
sumber