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

  • 相关阅读:
    CSS(八) 常见的居中定位
    VUE常用的标签属性和指令
    ES6面向对象
    ES6解构赋值
    jvarScript的多个参数
    ES6的箭头函数
    Light OJ 1125 Divisible Group Sums
    Light OJ 1168 Wishing Snake
    Light OJ 1044 Palindrome Partitioning
    hdu 3967 Zero's Number
  • 原文地址:https://www.cnblogs.com/feipeng8848/p/6971249.html
Copyright © 2011-2022 走看看