免責聲明:我不確定這個問題是否可以回答,因爲它目前代表。如果答案非常難或實際上不可能,我會重新發佈一個可編輯的例子,但我目前沒有時間。Java直接投與vs使用本地變量投射
誰能告訴我爲什麼這個編譯:
public void addOutputConnLayer(OutputConnLayer mainOutputConnLayer) {
for (Map.Entry<String, AbstractPanelController<? extends AbstractPanelModel,
? extends AbstractPanelView<? extends AbstractPanelModel>>> entry : subControllers.entrySet()) {
if (entry.getValue() instanceof OutputConnLayerUser) {
OutputConnLayerUser tmp = (OutputConnLayerUser)entry.getValue();
tmp.addOutputConnLayer(mainOutputConnLayer);
}
}
}
而我得到一個「OutputConnLayerUser不能被解析爲一個變量」錯誤,當我不使用局部變量?例如:
public void addOutputConnLayer(OutputConnLayer mainOutputConnLayer) {
for (Map.Entry<String, AbstractPanelController<? extends AbstractPanelModel,
? extends AbstractPanelView<? extends AbstractPanelModel>>> entry : subControllers.entrySet()) {
if (entry.getValue() instanceof OutputConnLayerUser) {
(OutputConnLayerUser)(entry.getValue()).addOutputConnLayer(mainOutputConnLayer); //<--- this line produces the error
}
}
}
OutputConnLayerUser是一個單一方法的接口。它看起來如下:
public interface OutputConnLayerUser {
public void addOutputConnLayer(OutputConnLayer ocl);
}
正確包裝'((OutputConnLayerUser)(entry.getValue()))'。 – NINCOMPOOP
哦,我的上帝...... *評論必須至少有15個字符的長度* – deinocheirus