绑定不匹配:类型不是绑定参数的有效替代
Bound mismatch: type is not a valid substitute for the bounded parameter
我收到以下错误 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
我对泛型的理解遗漏了什么。我发现了很多具有相同错误消息的帖子,但我似乎无法破译它们。
这里有一个简单的class实现了错误:
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 <-
}
如果 AbsStage
中的类型参数 T
必须扩展 AbsTask<T>
,则 FFTWTask
必须扩展 AbsTask<FFTWTask>
才能在 [=16] 中使用=]:
public class FFTWTask extends AbsTask<FFTWTask>{ }
我收到以下错误 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
我对泛型的理解遗漏了什么。我发现了很多具有相同错误消息的帖子,但我似乎无法破译它们。
这里有一个简单的class实现了错误:
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 <-
}
如果 AbsStage
中的类型参数 T
必须扩展 AbsTask<T>
,则 FFTWTask
必须扩展 AbsTask<FFTWTask>
才能在 [=16] 中使用=]:
public class FFTWTask extends AbsTask<FFTWTask>{ }