Originariamente inviato da earl
Quindi, dici che è meglio passare l'oggetto in di tipo scanner ad ogni metodo piuttosto che creare un nuovo oggetto Scanner in ognuno di essi?
In questo caso crereei un unico Scanner a livello di classe (static come i metodi), che verrà quindi usato da tutti.
Originariamente inviato da earl
Per le eccezioni: quindi è più corretto scrivere tutti i blocchi catch con le relative eccezioni piuttosto che un unico catch (con un'eccezione generica) in cui faccio la stampa di e.toString?
In questo caso va bene anche Exception ma in un contesto reale potresti aver bisogno di sapere quale errore è capitato tra i mille che possono capire (ma anche lì, non è detto che sia necessario catturare l'eccezion, magari conviene più rilanciarla ma non è questo il caso: ora ti basta un semplice messaggio che spiega cosa è successo).
codice:
...
private static Scanner scanner = new Scanner(System.in);
public static int insertInt() {
int num = 0;
boolean ok = false;
do {
try {
System.out.print("Inserisci un valore intero: ");
num = scanner.nextInt();
ok = true;
} catch (Exception ex) {
System.out.println("Il valore inserito non e\' un intero valido.");
}
} while (!ok);
return num;
}
...
Originariamente inviato da earl
Per decorare intendi l'uso di PrintWriter?
grazie ancora dei chiarimenti
Esatto. Nel package java.io si usa molto il pattern "decorator".
Ad esempio, per leggere un file puoi usare FileReader (che legge carattere per carattere). Però puoi inserirlo in un BufferedReader per aggiungere un buffer alla lettura, in pratica "decori" l'oggetto originale