2012-01-26 12 views
5

Stavo guardando il libro di ricette di O'Reillys Java (2ed) per alcune cose buone e ho trovato il metodo Scanner.create() circa 10 volte. Ma non c'è nulla nell'API o nella dichiarazione di classe \ implementazione. Es: Page exampleNuovo scanner di Java vs Scanner.create()?

+1

strano l'esempio nella parte inferiore della pagina utilizza ctor scanner e che dopo uno dei paragrafi sostiene che non ha medici pubblici. – josefx

risposta

9

E 'sia per un tipo non-SDK scanner o è un errore nel libro.

Non c'è static Scanner Scanner.create() a Java 1.5/5 (quando è stato introdotto), o nei SDK 6 o SDK 7 API. Inoltre, non viene menzionato un tale metodo che è stato reso obsoleto (il che, in Java SDK API, significa in effetti che non è mai stato [ufficialmente] :-).

Aggiornamento nota: Sembra che il metodo create fabbrica ha effettivamente esisteva nelle prime versioni di anteprima/beta di Java 5. RanRag trovato un relevant thread sulla questione:

... e no, non stai impazzendo: lo scanner ha avuto metodi create() in [Java 5] tiger-beta1, ma sono stati convertiti in in costruttori in [Java 5] beta2.

(Quindi l'unico modo corretto di è utilizzare il costruttore.)

Felice di codifica.

+0

Thx, suppongo che tu sia wright riguardo all'anteprima precedente, non ci hai pensato – 4lex1v

+1

@pst: c'è una menzione del metodo 'scanner.create()' qui https://forums.oracle.com/forums/thread. jspa? threadID = 1.756.125. – RanRag

+1

@RanRag Grazie. Aggiornato per riflettere a fini storici. –

2

Viene menzionato in Oracle forums che Scanner ha creato() metodi in tiger-beta1, ma sono passati a costruttori in beta2.

Questo non è più il modo di farlo. È necessario creare un'istanza di nella classe Scanner nello stesso modo in cui si crea un'istanza di qualsiasi classe utilizzando un costruttore.

Scanner sc = new Scanner(System.in) 
1

Hmm sembra che qualcuno non abbia controllato le specifiche aggiornate prima del post del ricettario! L'unico modo per instatiate un oggetti scanner è:

Scanner sc = new Scanner(System.in) 

secondo l'API documentation