Java的新Scanner vs Scanner.create()?

时间:2012-01-26 21:46:59

标签: java java.util.scanner

我正在通过O'Reillys Java Cookbook(2ed)查看一些好东西,并发现Scanner.create()方法大约10次。但是在API或类声明\实现中没有这样的。例如:Page example

3 个答案:

答案 0 :(得分:9)

它指的是非SDK扫描程序类型,或者是书中的错误。

Java 1.5/5(引入时)或SDK 6SDK 7 API中没有static Scanner Scanner.create()。也没有提到这种方法被淘汰(在Java SDK API中,有效地意味着它从未[官方]存在:-)。

更新说明:最早的预览版/测试版Java 5中确实存在create工厂方法.RanRag在此问题上找到了relevant thread

  

......不,你不会发疯:Scanner 在[Java 5] tiger-beta1 中有create()方法,但是他们在[Java 5]中切换到了构造函数] beta2

(所以唯一正确的方法是使用构造函数。)

快乐的编码。

答案 1 :(得分:2)

Oracle forums中提到Scanner在tiger-beta1中有create()方法,但是他们在beta2中切换到了构造函数。

  

这不再是这样做的方法。你应该创建一个实例   Scanner类与创建任何实例的方式相同   其他类,使用构造函数。

Scanner sc  = new Scanner(System.in)

答案 2 :(得分:1)

嗯,看起来有人没有在菜谱贴前检查更新的规格!实例化Scanner对象的唯一方法是:

Scanner sc  = new Scanner(System.in)

根据API documentation