工作,我有這樣的類型:方法類型參數不適合循環
abstract class ControlGraphic {
//...
}
class PrecisionControlGraphic extends ControlGraphic {
//...
}
class AccuracyControlGraphic extends ControlGraphic {
//...
}
我有一個返回值的方法的List<T>
,其中T
是依賴於類型參數PrecisionControlGraphic
或AccuracyControlGraphic
:
private <T extends ControlGraphic> List<T> getGraphics() {
List<T> graphics = new LinkedList<T>();
for (ControlGraphic graphic : getGraphicsFromDB())
graphics.add((T) graphic);
return graphics;
}
以下代碼正常工作:
List<PrecisionControlGraphic> precisionGraphics = getGraphics();
for (PrecisionControlGraphic graph : precisionGraphics) { ... }
我想知道爲什麼這個另一個不:
for (PrecisionControlGraphic graph : getGraphics()) { ... }
謝謝。
在你的第二個例子中,編譯器不知道T使用什麼類型。您需要指定它,例如(PCG graph:this。 getGraphics()' –
2015-04-02 07:37:49
@AdrianLeonhard你爲什麼決定將它發佈爲評論而不是回答? – Pshemo 2015-04-02 07:39:31
@Pshemo懶惰。 – 2015-04-02 07:40:31