Saya baru-baru ini menemukan betapa berguna objek abadi dan bahwa misalnya jika Anda meneruskan elemen ke konstruktor dan kelas Anda harus abadi, Anda harus menyalin elemen-elemen ini jika mereka tidak abadi sendiri.
Ini membutuhkan banyak pemeriksaan atau pengetahuan tentang proyek saya, karena jika saya punya
public A(B foo)
dan B
tidak bisa diubah, A
saya harus menyalin B
. Sekarang bayangkan B
sepertinya tidak bisa diubah, tetapi ia sendiri memiliki kelas yang bisa berubah dalam konstruktor dan sebagainya.
Apakah ada standar atau praktik terbaik untuk mendokumentasikan jika suatu kelas tidak dapat diubah di Jawa? Tampaknya tidak ada @immutable
kata kunci di Javadoc.
The penjelasan @Immutable tampaknya menjadi sesuatu yang sama sekali berbeda untuk generasi kelas auto dan bukan bagian dari Java standar.
sumber
Jawaban:
Melihat dokumentasi
String
kelas (teks tebal adalah sesuatu yang saya lakukan):Seperti yang Anda lihat, tidak ada label tertentu atau spidol lain, namun, mereka menentukan dalam JavaDoc yang menggambarkan kelas bahwa
String
kelas tersebut mewakili objek yang konstan dan tidak dapat diubah.Dengan demikian, dengan asumsi bahwa Anda mengikuti instruksi yang diberikan dalam tutorial Oracle ini untuk membuat kelas yang tidak dapat diubah, untuk memastikan bahwa kekekalan kelas didokumentasikan, Anda harus memastikan bahwa Anda menyebutkan di dalamnya di dalam JavaDoc yang menggambarkan kelas dan apa itu tidak.
Jika itu masih tidak sesuai dengan yang Anda butuhkan, Anda bisa melihat bagaimana Anda bisa membuat tag JavaDoc kustom di sini .
sumber
Anda dapat menggunakan anotasi:
@ javax.annotation.concurrent.Immutable dari JSR-305
atau @ net.jcip.annotations.Immutable dari Java Concurrency In Practice
sumber