2
我收到以下錯誤Bound mismatch: The type FFTWTask is not a valid substitute for the bounded parameter <T extends AbsTask<T>> of the type AbsStage<T,U>
綁定不匹配:類型是不是爲界參數
我代表一個抽象階段的有效替代品:
public abstract class AbsStage<T extends AbsTask<T>, U extends AbsTask<U>> { }
凡AbsTask是:
public abstract class AbsTask <T> { }
然後我創建了一個名爲FFTWTask的AbsTask:
public class FFTWTask extends AbsTask<Double>{ }
最後,我創建一個名爲FFTWStage的AbsStage:
public class FFTWStage extends AbsStage<FFTWTask, FFTWTask>{ } // Error occurs here
什麼我與我的瞭解泛型失蹤。我發現了大量功能相同的錯誤消息,但我似乎無法破譯它們。
下面是實現了誤差的簡單類:
public class Test {
public abstract class AbsTask <T> { }
public class FFTWTask extends AbsTask<Double>{ }
public abstract class AbsStage<T extends AbsTask<T>, U extends AbsTask<U>> { }
public class FFTWStage extends AbsStage<FFTWTask, FFTWTask>{ } // Error here <-
}
這可以解決測試中的錯誤。現在,如何表示某個任務的某種數據類型,以便我可以讓任務在其中保存Double(或其他類型)。 – Jameshobbs 2015-01-09 21:11:50
你可以從AbsStage中的'T'和'U'中刪除遞歸類型邊界('AbsStage') –
August
2015-01-09 21:18:04
Yup解決了這個問題。非常感謝。嚴重泛型讓我有時感到非常頭痛...並感謝幫助我逐步完成它 – Jameshobbs 2015-01-09 21:20:44