Karena penggunaan Generik di Java, saya akhirnya harus mengimplementasikan fungsi yang memiliki Void
tipe kembali:
public Void doSomething() {
//...
}
dan kompilator meminta saya mengembalikan sesuatu . Untuk saat ini saya baru saja kembali null
, tetapi saya ingin tahu apakah itu praktik pengkodean yang baik ...
Saya bertanya tentang V oid, bukan v oid. Kelas Void
, bukan kata kunci yang dipesan void
.
Saya juga sudah mencoba Void.class
, void
, Void.TYPE
, new Void()
, tidak kembali sama sekali, tapi semua itu tidak bekerja sama sekali. (Untuk alasan yang kurang lebih jelas) (Lihat jawaban ini untuk detailnya)
- Jadi apa yang harus saya kembalikan jika tipe kembalian dari suatu fungsi adalah
Void
? - Apa kegunaan umum
Void
kelas?
Tidak ada cara untuk membuat instance Void, jadi satu-satunya hal yang dapat Anda kembalikan adalah null.
sumber
return null
adalah cara untuk pergi.sumber
Untuk memperjelas mengapa saran lain yang Anda berikan tidak berhasil:
Void.class
danVoid.TYPE
menunjuk ke objek yang sama dan bertipeClass<Void>
, bukan dariVoid
.Itulah mengapa Anda tidak bisa mengembalikan nilai-nilai itu.
new Void()
akan menjadi tipeVoid
tetapi konstruktor itu tidak ada. Faktanya,Void
tidak memiliki konstruktor publik sehingga tidak dapat dibuat instance-nya: Anda tidak pernah dapat memiliki objek berjenis apa punVoid
kecuali polimorfiknull
.Semoga ini membantu! :-)
sumber
Void.TYPE
tidak mengarah keVoid.class
. Itu menunjuk kevoid.class
.Jika, karena alasan yang tidak jelas, Anda HARUS menggunakan tipe ini, maka memang mengembalikan null tampaknya merupakan opsi yang masuk akal, karena saya kira nilai yang dikembalikan tidak akan digunakan.
Kompiler akan memaksa Anda untuk mengembalikan sesuatu.
Dan kelas ini tampaknya tidak memiliki konstruktor publik sehingga Void () baru tidak memungkinkan.
sumber
seperti ini.
sumber
Void
, tidakvoid
. Jawaban-jawaban lain sepertinya sudah mencakup subjek dengan cukup baik.