Presunzione di Java e che sei determinato a farlo da solo, piuttosto che utilizzare un struttura di registrazione , preferirei vedere qualcosa del tipo:
outPort.println("Hello world");
... dove outPort
imposta automaticamente un oggetto nullo a meno che tu non abbia passato qualcosa del tipo:
someFunction(System.out);
... per sovrascrivere il valore predefinito.
Ora certo, potresti solo riconfigura System.out
o reindirizza l'output quando esegui il programma, ma è tutto o niente. Se hai 15 oggetti che parlano ma vuoi solo sentirli da uno di essi è bello se puoi dire a ciascuno di loro a cosa parlare.
È possibile inviare l'output a "/ dev / null" o "NUL:" se si conosce il sistema operativo. Ma se non vuoi preoccuparti, ecco una versione veloce e sporca di un oggetto nullo che bloccherà il rumore prima che sia necessario coinvolgere i nomi dei file magici.
java.io.PrintStream outPort = new java.io.PrintStream(
new java.io.OutputStream() { @Override public void write(int b){} }
);
Questo oggetto nullo non fa nulla tranquillamente quando viene chiamato. È un buon valore predefinito se il silenzio è il comportamento tipico desiderato. Qui sto usando una classe anonima perché sono pigro. Puoi creare una classe più robusta e assegnargli un nome appropriato se lo desideri.
Questi trucchi funzionano nella maggior parte delle lingue se cambi i nomi giusti.