zoukankan      html  css  js  c++  java
  • Scanner类与Readable接口

    Java SE5的Scanner类的构造器接收的就是一个Readable接口。你会发现Readable没有用在Java标准类库中其他任何方法的参数,它是单独为Scanner创建的,以使得Scanner不必将其参数限制为某个特定的类。通过这种方式,Scanner可以作用于更多的类型。而特定类只需要实现Readable接口,并重写其中的read方法即可。

    Scanner类的这种实现方法用到了策略设计模式,并且在使用Readable接口的过程中也可以使用适配器模式来适配特定类从而能作用于Scanner。具体可参考《Java编程思想》P182。

    Readable源码:

    public interface Readable {
        public int read(java.nio.CharBuffer cb) throws IOException;
    }

    关于CharBuffer说明:nio中char缓冲器(nio主要新增了通道和缓冲器),后续再深入探讨。

    Scanner源码:

    Info:A simple text scanner which can parse primitive types and strings using regular expressions.
    
    Constructors:可接受File,Path,String,流及通道;
    
    Methods:
    1. hasNext及hasNext***(BigDecimal,BigInteger,Byte,Double,Float,Int等);
    2. next及next***(BigDecimal,BigInteger,Byte,Double,Float,Int等);
  • 相关阅读:
    10/11
    el表达式的坑
    在idea下两个项目之间的maven父子级项目依赖
    树上任意两点间距离
    优先级顺序
    HDU 6447
    KMP
    cf 1029 C
    牛客练习赛25
    莫比乌斯算法
  • 原文地址:https://www.cnblogs.com/jayinnn/p/10971758.html
Copyright © 2011-2022 走看看