zoukankan      html  css  js  c++  java
  • java接口变量问题

    java中接口是不能实例化的,然而像下面这种用法是可以的:

    复制代码
              List<FileItem> items = upload.parseRequest(request);
                    Iterator<FileItem> iter = items.iterator();
                    while (iter.hasNext()) {
                        FileItem item = iter.next();
                        File file=new File("D:\b.pdf");
                        if(!file.exists()) 
                        {
                            try {    
                                file.createNewFile();    
                            } catch (IOException e) {    
                                e.printStackTrace();    
                            }    
                        }
                        BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream(file));
                        BufferedInputStream bfis=new BufferedInputStream(item.getInputStream());
                        byte b[]=new byte[2048];
                        int read=bfis.read(b,0,2048);
                        while(read!=-1)  
                        {  
                            bos.write(b,0,read); 
                            read=bfis.read(b,0,2048);  
                        }  
                        bfis.close();
                        bos.flush();
                        bos.close();
    复制代码

    主要看这二行:

    List<FileItem> items = upload.parseRequest(request);
    Iterator<FileItem> iter = items.iterator();

    去List找源码

    List是接口没有实现,去找一个实现了List的类(ArrayList就可以)

    可以看到实际上是返回了一个Itr:

    Itr的定义在下面:

    一个实现了Iterator接口的私有类。这样以来就明朗了

  • 相关阅读:
    IO模型
    opencv操作(二)
    Opencv基于python的基本操作(一)
    Django路由层与视图层、pycharm虚拟环境
    Django实现简单的用户添加、删除、修改等功能
    初识Django
    前端框架Bootstrap
    JQuery
    JavaScript之BOM和DOM
    JavaScript学习笔记
  • 原文地址:https://www.cnblogs.com/wt88/p/9624317.html
Copyright © 2011-2022 走看看