接口的Java类型推断

时间:2018-09-18 09:48:06

标签: java type-inference

我有以下两个界面:

public interface FieldValue<T> {

  public String getLabel();
  public T getHrValue();
  public T getPicValue();
  public T getMinusOneValue();
  public T getMinusTwoValue();

}

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();

}

然后我有了一个包含此类Field类型列表的类。 如果我尝试以这种方式进行迭代,则getValues()无法推断FieldValue类型,而只能推断Object。

        for (Field f : myclass.getFields()) {
            for(FieldValue fv : f.getValues()) { //error, cannot convert element type Object to FieldValue
            }
        }

有人可以解释一下为什么会这样吗?

谢谢

0 个答案:

没有答案