java接口变量问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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接口的私有类。这样以来就明朗了
以上是关于java接口变量问题的主要内容,如果未能解决你的问题,请参考以下文章