2012-01-26 2 views
5

Я просматривал книгу Поваренной книги О'Рейлиса (2ед) для некоторых хороших вещей и нашел способ Scanner.create() около 10 раз. Но таких нет в API или декларации класса \ реализация. Пример: Page exampleНовый сканер Java от Scanner.create()?

+1

Weird примеру в нижней части страницы используется CTOR сканера и что после того, как один из пунктов утверждают, что он не имеет общественные организации. – josefx

ответ

9

Это либо, относящийся к типу, не SDK Scanner или ошибка в книге.

Там нет в Java 1.5/5 нет static Scanner Scanner.create() (если оно было введено), или в SDK 6 или SDK 7 API. Также нет упоминания о том, что такой метод устареет (что в Java SDK API эффективно означает, что он никогда [официально] не существовал :-).

Update Примечание: Оказывается, что метод create завод действительно существуют в самых ранних просмотр/бета-версии Java 5. RanRag нашел relevant thread по этому вопросу:

... и нет, вы не сходите с ума: Scanner имел методы create() в [Java 5] tiger-beta1, но они переключились на конструкторы в [Java 5] beta2.

(Так что единственный правильный способ, это использовать конструктор.)

День кодирование.

+0

Thx, угадайте, что вы правы о более раннем предварительном просмотре, не думали об этом – 4lex1v

+1

@pst: здесь упоминается метод 'scanner.create()' https://forums.oracle.com/forums/thread. АПО? ThreadId = 1756125. – RanRag

+1

@RanRag Спасибо. Обновлен, чтобы отражать исторические цели. –

2

В приложении Oracle forums указано, что у Scanner были методы create() в тигере-бета1, но они переключились на конструкторы в бета2.

Это уже не способ сделать это. Вы должны создать экземпляр класса Scanner так же, как и создать экземпляр любого класса с помощью конструктора.

Scanner sc = new Scanner(System.in) 
1

Хм, похоже, кто-то не проверял обновленную спецификацию перед публикацией поваренной книги! Единственный способ instatiate объектов сканера:

Scanner sc = new Scanner(System.in) 

по API documentation