Come dovrei annotare, che una classe è immutabile in Java?

14

Recentemente sono incappato su quanto siano utili oggetti immutabili e che ad es. se passi elementi a un costruttore e la tua classe dovrebbe essere immutabile, devi copiare questi elementi se non sono immutabili essi stessi.

Ciò richiede un sacco di controllo o conoscenza del mio progetto, perché se ho

public A(B foo)

e B non è immutabile, A Dovrei copiare B . Ora immagina che B sembra immutabile, ma di per sé ha classi mutabili nel costruttore e così via.

Esiste uno standard o una best practice per documentare se una classe è immutabile in Java? Sembra che non ci sia% parole chiave% in Javadoc.

L' annotazione @Immutable sembra essere qualcosa di completamente diverso per la generazione di classi auto e non parte di standard Java.

    
posta Aufziehvogel 05.02.2015 - 12:58
fonte

2 risposte

7

Esaminare la documentazione della classe String ( il testo in grassetto è qualcosa che ho fatto):

The String class represents character strings. All string literals in Java programs, such as "abc", are implemented as instances of this class. Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared.

Come puoi vedere, non c'è un'etichetta specifica o altri marcatori, tuttavia specificano nel JavaDoc che descrive la classe che la classe String rappresenta un oggetto costante e immutabile.

Pertanto, supponendo di aver seguito le istruzioni fornite in questo tutorial Oracle per creare una classe immutabile, per assicurarti che l'immutabilità della classe sia documentata, dovresti solo assicurarti di menzionarne la parte nel JavaDoc che descrive la classe e che cosa fa.

Se ciò non soddisfa ancora le tue esigenze, puoi dare un'occhiata a come potresti creare tag personalizzati JavaDoc qui .

    
risposta data 05.02.2015 - 14:27
fonte
4
risposta data 18.05.2015 - 04:06
fonte

Leggi altre domande sui tag