I am trying to iterate through a List<File>, but the compiler
does not like when I try to assign the next item to a File type. It
says that file and it.next() are incompatible types, but each item of
filelist is supposed to be of type File. The error occurs at the
line:
File file = it.next();
The code may be found below. Note that the method listAllFiles
returns List<File>.
What am I doing wrong? Thanks, Alan
List<File> filelist = listAllFiles(directory, "*.java");
for (Iterator it = filelist.iterator(); it.hasNext();)
{
File file = it.next();
System.out.println(file.getName());
}
Alan - 23 Dec 2007 02:56 GMT
Never mind! A type cast fixed it:
File file = (File) it.next();
Daniel Pitts - 23 Dec 2007 21:35 GMT
> Never mind! A type cast fixed it:
>
> File file = (File) it.next();
A type cast is the wrong way to fix it...
You shouldn't use "Iterator it", you should have used
"Iterator<File> it".
Hope this helps.

Signature
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>
Patricia Shanahan - 23 Dec 2007 03:22 GMT
> I am trying to iterate through a List<File>, but the compiler
> does not like when I try to assign the next item to a File type. It
[quoted text clipped - 16 lines]
> System.out.println(file.getName());
> }
More simply:
for (File file: filelist)
{
System.out.println(file.getName());
}
but if you want to do it the old way, you could indicate what the
Iterator iterates:
for (Iterator<File> it = filelist.iterator(); it.hasNext();)
{
File file = it.next();
System.out.println(file.getName());
}
Patricia