I have a very strange error in my code. I am using iterators since the beginning of my project and I never had problems but here I can't understand what's going on.
I have a model class
public class MyObject implements Serializable{
private static final long serialVersionUID = 1L;
private int field1;
private String field2;
private List<OtherObject> field3;
private Date field4
...
// + Getters and setters
// + Override equals method
}
A class with a parameters of MyObject type
public class FooClass implements Serializable{
private static final long serialVersionUID = 1L;
private List<MyObject> list;
// + getters and setters
}
And I have an other class using MyObject
public class MyController {
.....
public static void AMethod(FooClass value) {
List<MyObject> myList = value.getList();
Iterator<MyObject> iterator = myList.iterator();
while(iterator.hasNext()) {
MyObject temp = iterator.next(); // error on this line
}
}
...
}
My objects are displayed in a JSF view by using the following code:
<p:selectCheckboxMenu value="#{fooClass.list}">
<f:selectItems value="#{fooClass.listAll}" var="obj"
itemValue="#{obj}" itemLabel="#{obj.field2}" />
</p:selectCheckboxMenu>
Here is the error I'm getting:
java.lang.ClassCastException: java.lang.String cannot be cast to com.MyObject
Have any got any suggestions?