2012-01-26 13 views
5

Estaba buscando en el libro de cocina Java de O'Reilly (2ed) algunas cosas buenas y encontré el método Scanner.create() unas 10 veces. Pero no hay tal en la API o declaración de clase \ implementación. Ejemplo: Page exampleNuevo escáner de Java contra Scanner.create()?

+1

extraño el ejemplo en la parte inferior de la página utilizan la ctor escáner y que después de uno de los párrafos afirma que no tiene public ctors. – josefx

Respuesta

9

Es ya sea en referencia a un tipo no SDK escáner o es un error en el libro.

No hay static Scanner Scanner.create() en Java 1.5/5 (cuando se presentó), o en los SDK 6 o SDK 7 APIs. Tampoco se menciona que dicho método esté obsoleto (lo que, en Java SDK API, significa que nunca existió [oficialmente] :-).

actualización Nota: Parece que el método create fábrica, efectivamente, existe en las primeras versiones de vista previa/beta de Java 5. RanRag encontró una relevant thread sobre el tema:

... y no, No te estás volviendo loco: el escáner tenía métodos create() en [Java 5] tiger-beta1, pero ellos cambiaron a constructores en [Java 5] beta2.

(Así que la única forma correcta de utilizar es el constructor.)

feliz de codificación.

+0

Thx, supongo que está equivocado sobre la vista previa anterior, no lo pensó – 4lex1v

+1

@pst: hay una mención del método 'scanner.create()' aquí https://forums.oracle.com/forums/thread. jspa? threadID = 1756125. – RanRag

+1

@RanRag Gracias. Actualizado para reflejar con propósitos históricos. –

2

Se menciona en Oracle forums que el escáner tenía métodos create() en tiger-beta1, pero cambiaron a constructores en beta2.

Esto ya no es la manera de hacerlo. Debe crear una instancia de la clase de escáner de la misma forma que crearía una instancia de cualquier otra clase de , utilizando un constructor.

Scanner sc = new Scanner(System.in) 
1

Hmm parece que alguien no ha verificado las especificaciones actualizadas antes de la publicación del libro de cocina. La única manera de instatiate unos objetos escáner es:

Scanner sc = new Scanner(System.in) 

según la API documentation

Cuestiones relacionadas