Tôi đã xem qua cuốn sách dạy nấu ăn Java O'Reillys (2ed) cho một số nội dung hay và tìm phương thức Scanner.create() khoảng 10 lần. Nhưng không có trong API hoặc khai báo lớp \ implementation. Ví dụ: Page exampleMáy quét mới của Java so với Scanner.create()?
Trả lời
Nó hoặc là đề cập đến một loại không SDK Scanner hoặc là một lỗi trong cuốn sách.
Không có static Scanner Scanner.create()
trong Java 1.5/5 (khi được giới thiệu) hoặc trong các API SDK 6 hoặc SDK 7. Cũng không có đề cập đến một phương thức như vậy bị lỗi thời (trong đó, trong Java SDK API, có nghĩa là nó không bao giờ [chính thức] tồn tại :-).
Cập nhật lưu ý: Dường như phương pháp create
nhà máy đã thực sự tồn tại trong phiên bản xem trước/beta đầu tiên của Java 5. RanRag tìm thấy một relevant thread về vấn đề này:
... và không, bạn sẽ không phát điên: Máy quét có các phương thức create() trong [Java 5] tiger-beta1, nhưng chúng chuyển sang các nhà xây dựng trong [Java 5] beta2.
(Vì vậy, một cách chính xác duy nhất là sử dụng các nhà xây dựng.)
Chúc mừng mã hóa.
Được đề cập trong Oracle forums Máy quét đã tạo() phương pháp trong hổ-beta1, nhưng chúng chuyển sang hàm tạo trong phiên bản beta2.
Đây không còn là cách để thực hiện. Bạn nên tạo một thể hiện của lớp Máy quét theo cùng cách mà bạn sẽ tạo một cá thể của bất kỳ lớp nào khác bằng cách sử dụng một hàm tạo.
Scanner sc = new Scanner(System.in)
Hmm có vẻ như ai đó không kiểm tra thông số được cập nhật trước khi đăng bài nấu ăn! Cách duy nhất để instatiate một đối tượng Scanner là:
Scanner sc = new Scanner(System.in)
theo Weird ví dụ API documentation
ở dưới cùng của trang sử dụng ctor Scanner và rằng sau khi một trong những đoạn văn khẳng định rằng nó không có ctors công cộng. – josefx