2015-01-03 22 views
5

Sto guardando la documentazione Java per DataInputStream qui: http://docs.oracle.com/javase/7/docs/api/java/io/DataInputStream.htmlQual è il "contratto quadro" di un metodo

Sto cercando di vedere ciò che i suoi metodi fanno guardo le descrizioni di readBoolean(), readByte(), readChar() ecc

le descrizioni sono tutti qualcosa sulla falsariga di:

vedere il contratto generale del metodo di readBoolean DataInput.

E nella spiegazione estesa.

public final boolean readBoolean() 
          throws IOException 
See the general contract of the readBoolean method of DataInput. 
Bytes for this operation are read from the contained input stream. 

Specified by: 
readBoolean in interface DataInput 

Returns: 
the boolean value read. 

Throws: 
EOFException - if this input stream has reached the end. 
IOException - the stream has been closed and the contained input stream does not support reading after close, or another I/O error occurs. 

See Also: 
FilterInputStream.in 

Dove posso "vedere" i contratti generali di questi metodi e che cosa è un contratto generale di un metodo?

+4

Basandosi sulla risposta di @JonSkeet, "Contratto generale" spesso descrive la documentazione allegata a un metodo di interfaccia che descrive in modo _generale_, come deve comportarsi un'implementazione del metodo o, documentazione di un metodo di classe base che descrive come un override di quel metodo dovrebbe comportarsi. Quando qualcuno scrive un'implementazione specifica o un override, può semplicemente dire "vedere il contratto generale" invece di replicare tutte queste informazioni. –

risposta

4

Significa solo che la documentazione di DataInput.readBoolean contiene ulteriori dettagli. In particolare, tale documentazione afferma:

legge un byte di ingresso e restituisce true se questo byte è diverso da zero, false se questo byte è pari a zero. Questo metodo è adatto per leggere il byte scritto dal metodo writeBoolean dell'interfaccia DataOutput.

Quindi si dovrebbe aspettare DataInputStream.readBoolean a comportarsi in quel modo.

1

A generale contratto di un metodo in una classe base è uno che deve essere la base dei contratti del metodo in tutte le classi di estensione. È generale in quanto si applica generalmente all'intero genere della classe base e a tutte le sue classi derivate. Indipendentemente dagli altri termini che le classi derivate possono aggiungere al contratto del metodo, deve sempre mantenere il contratto generale.

Un esplicito contratto generale è uno che viene fornito nella documentazione del metodo per la classe base.

Problemi correlati