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接口的私有类。这样以来就明朗了

  • 相关阅读:
    Köln-keith jarrett
    关于写博客,看博客
    django中使用celery
    django邮箱验证模块
    django验证码模块使用
    auth模块
    djangoORM语句
    django的from组件
    django分页
    django基本数据类型
  • 原文地址:https://www.cnblogs.com/wt88/p/9624317.html
Copyright © 2011-2022 走看看