Metode Java batal secara implisit mengembalikan ini

20

ada beberapa diskusi tentang SO tentang metode penyetel yang mengembalikan tipe "ini". Dan sepertinya java 7 memiliki proposal metode batal mengembalikan ini. Tetapi proposal ini tidak dapat membuatnya ke fitur java 7. Saya tidak dapat menemukan apakah proposal ini dipindahkan ke java 8 atau masa depan atau telah sepenuhnya dibuang. Apakah itu?

Tautan ref - /programming/31584/design-java-and-returning-self-reference-in-setter-methods

Tarun
sumber
3
Akan sangat berterima kasih memiliki beberapa tautan ke diskusi yang telah Anda sebutkan dalam pertanyaan, sehingga akan bermanfaat bagi orang lain dan akan membantu mereka lebih memahami pertanyaan itu.
ManuPK
mengedit pertanyaan saya
Tarun

Jawaban:

11

Sepertinya saya tidak dapat menemukan sumber itu, tetapi saya percaya fitur ini telah dihapus sepenuhnya. Ada banyak alasan yang dapat saya pikirkan:

  • kinerja - setiap voidmetode sekarang memiliki opcode pengembalian ekstra dan setiap tempat di mana metode ini disebut perlu implisit popkecuali benar-benar menggunakan metode chaining

  • kompatibilitas mundur - kompilasi terhadap fitur ini tiba-tiba membuat kode mundur tidak kompatibel karena kontrak setiap voidmetode telah berubah

Tentu saja ini juga dapat diimplementasikan oleh kompiler ( memanggil metode void? Anda mungkin bermaksud this, izinkan saya menambahkan ini secara implisit ), tidak tahu apa kerugian dari pendekatan ini.

Tomasz Nurkiewicz
sumber
1
Kompiler harus mendukung fitur ini (sehingga kode panggilan akan dikompilasi) dan itu dapat menyimpan objek yang dipanggil dan menggunakannya lagi tanpa metode panggilan diubah.
Peter Lawrey
Fitur untuk OpenJDK seperti ini sekarang ditangani sebagai JDK Enhancement Proposals (JEPs) dan memang ini tidak lagi terdaftar (dan saya belum melihatnya dibahas dalam beberapa waktu).
Martijn Verburg
3

Saya tidak percaya ini pernah diusulkan secara formal untuk proyek COIN tahun 2009. Halaman ini bermaksud untuk mendaftar semua proposal, dan saya tidak dapat melihat satu yang sesuai.

Jika tidak diusulkan, itu tidak akan dipertimbangkan.

Stephen C
sumber