一段代码不是很理解
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方法里的内容。我不太明白为什么要那么用,用接口修饰一个方法,并当作参数传到另外一个文件里,这用用法叫什么?怎么用?谢谢
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方法里的内容。我不太明白为什么要那么用,用接口修饰一个方法,并当作参数传到另外一个文件里,这用用法叫什么?怎么用?谢谢
楼主【yaonet2008】截止到2008-07-07 11:45:18的历史汇总数据(不包括此帖):
发帖的总数量:38 发帖的总分数:1400
结贴的总数量:27 结贴的总分数:940
无满意结贴数:0 无满意结贴分:0
未结的帖子数:11 未结的总分数:460
结贴的百分比:71.05 % 结分的百分比:67.14 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主加油
public HSSFWorkbook process(HSSFWorkbook book) {
book.setSheetName(0, "a");
book.setSheetName(1, "b");
return book;这种方式其实就是实现了这个接口,这种做法的目的是不希望外部创建对象,因此这里实现了一个匿名类,也就是说只有这个方法才可以返回这个类的对象,其他方式无法获得,起到了很好的隐藏做用。另外,由于外部需要使用这个接口,所以这里仅仅曝露一个接口即可。在外面看来,他调用了这个方法,返回了一个实现了该接口的对象,其他的他就不用管了,直接用就好了。