首页 > 代码库 > 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接口的私有类。这样以来就明朗了
java接口变量问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。