I have these two interfaces:
public interface FieldValue<T> {
public String getLabel();
public T getHrValue();
public T getPicValue();
public T getMinusOneValue();
public T getMinusTwoValue();
}
and
public interface Field<T> {
public List<FieldValue<T>> getValues();
public void injectHrValue(ReportData data);
public void injectPicValue(ReportData data);
public void injectMinusOneValue(ReportData data);
public void injectMinusTwoValue(ReportData data);
public void debug();
}
I have then a class which contains a list of such Field type. If I try to iterate in this way getValues() is not able to infer the FieldValue type but only Object.
for (Field f : myclass.getFields()) {
for(FieldValue fv : f.getValues()) { //error, cannot convert element type Object to FieldValue
}
}
Can someone explain me why this happens?
Thanks