日期:2014-05-20  浏览次数:20686 次

看不懂这段程序
看到这段程序:  
TokenStream   result   =   new   StandardTokenizer(reader);
        result   =   new   StandardFilter(result);
        result   =   new   LowerCaseFilter(result);
        result   =   new   StopFilter(result,   stopSet);  
其中,StandardTokenizer   ,StandardFilter   ,LowerCaseFilter   ,StopFilter都是TokenStream的子类。  
TokenStream是抽象类,每个类都实现了next()函数,
如果调用result.next()函数,它会执行哪个next()?这段程序怎么感觉不合逻辑。

------解决方案--------------------
new哪个就执行哪个啊
------解决方案--------------------
result指向哪个对象,就执行哪个对象的的next()方法
------解决方案--------------------
运行时多态.new的哪个就是哪个的方法.
------解决方案--------------------
我也看不懂,创建了4个对象
------解决方案--------------------
你在next方法里加输出,测试下不就知道了
------解决方案--------------------
同意楼上的,在重写next方法,在每个方法中加入一下自己的标志性输出语句就可以了.呵呵
------解决方案--------------------
试着运行一下不就知道了么?