一段代码不是很理解
public interface POIProcessor
{
public HSSFWorkbook process(HSSFWorkbook book);//一个接口
}
//用接口修饰了一个方法
public static POIProcessor getPostProcessor(final JXLSInfo info,
final boolean off, final boolean on) {
               //匿名内部类实现接口
return new POIProcessor() {
public HSSFWorkbook process(HSSFWorkbook book) {
book.setSheetName(0, "a");
book.setSheetName(1, "b");

return book; }
};
}然后在放在request.setAttribute("poiPostProcessor",getPostProcessor(info, off, on));
在另外一个文件里POIProcessor processor = (POIProcessor) request.getAttribute("poiPostProcessor");
这时候才会执行getPostProcessor方法里的内容。我不太明白为什么要那么用,用接口修饰一个方法,并当作参数传到另外一个文件里,这用用法叫什么?怎么用?谢谢

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【yaonet2008】截止到2008-07-07 11:45:18的历史汇总数据(不包括此帖):
    发帖的总数量:38                       发帖的总分数:1400                     
    结贴的总数量:27                       结贴的总分数:940                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:11                       未结的总分数:460                      
    结贴的百分比:71.05 %               结分的百分比:67.14 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   

    return new POIProcessor() {
                public HSSFWorkbook process(HSSFWorkbook book) {
                    book.setSheetName(0, "a");
                    book.setSheetName(1, "b");
                
                    return book;这种方式其实就是实现了这个接口,这种做法的目的是不希望外部创建对象,因此这里实现了一个匿名类,也就是说只有这个方法才可以返回这个类的对象,其他方式无法获得,起到了很好的隐藏做用。另外,由于外部需要使用这个接口,所以这里仅仅曝露一个接口即可。在外面看来,他调用了这个方法,返回了一个实现了该接口的对象,其他的他就不用管了,直接用就好了。
      

  3.   

    方法 getPostProcessor 返回的是实现了 POIProcessor 接口的某个类的对象(它的引用)。
      

  4.   

    匿名内部类实现了接口,我没看到任何特殊的。java里面有许多这样的写法,特别是GUI里面的事件处理