This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
While i am trying to iterate through a raw Collection (without generics) which contains my business objects using Iterator. It is throwing ClassCastExceptionwhen i am casting the Iterator's next value with expected object.
but when i replace Iterator with for(int i=0; i<collection.size();i++) loop its working fine and i am able to iterate the collection without any exception and i am able to cast my object with expected class type.
I am not sure why this is happening with JDK1.7u5 while the same code(with iterator) works fine in JDK1.6u31.
Please suggest me the solution or workaround for the same.
I'd be extremely surprised if casting an object to a type in its hierarchy caused a ClassCastException in any version of Java, and just as surprised if casting an object to a type not in its hierarchy didn't cause one. Of course, Iterator is just an interface, so a customized Iterator could be doing anything, including changing the types of the elements it iterates over. Can you give us an example that demonstrates this problem?