java - 只是通过 Java 泛型类型,但仍然出现 not-within-its-bound 错误

标签 java generics

我有这门课:

public abstract class SuperClass<
   CONE extends ClassOne,
   OBJ,
   VOBJ extends ValidateValue<OBJ>>

我试图用这个来扩展:

public class SubClass<CONE,VOBJ>
   extends SuperClass<CONE,Object,VOBJ>  {

但是我遇到了这两个错误。

type parameter CONE is not within its bound
public class SubClass<CONE,VOBJ> extends SuperClass<CONE,Object,VOBJ>  {
type parameter VOBJ is not within its bound
public class SubClass<CONE,VOBJ> extends SuperClass<CONE,Object,VOBJ>  {

如果我将 SubClass 更改为:

public class SubClass
   extends SuperClass<ClassOne,Object,ValidateValue<Object>>  {

它编译得很好。

这对我来说毫无意义,因为我只是将 CONE 和 VOBJ 传递到链上。

我会很感激一些建议。这让我很困惑。谢谢。

最佳答案

声明的类型参数

public class SubClass<CONE,VOBJ>

即。 ONEVOBJ没有 SuperClass 的界限期待,因此不能用作父类的类型参数。它需要是

public class SubClass<CONE extends ClassOne, VOBJ extends ValidateValue<Object>>>
   extends SuperClass<CONE, Object, VOBJ>  {
    ...
}

在你有效的声明中

public class SubClass
   extends SuperClass<ClassOne,Object,ValidateValue<Object>>  {

您传递的类型参数与边界匹配。 ClassOne火柴T extends ClassOneValidateValue<Object>火柴T extends ValidateValue<F>其中 FObject .

关于java - 只是通过 Java 泛型类型,但仍然出现 not-within-its-bound 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19756010/

相关文章:

java - add()操作在 "? extends"和 "? super"的区别

generics - Swift 泛型和 CMutableVoidPointer

swift - 如何将 nil 作为可选泛型函数参数传递

Java、泛型和 Classe<Generic> 问题

C# Generics Efficiency,一种更好的方法

java - 将字符串转换为 Sha-256 哈希值

java - 如何使用 java.util.Scanner 处理多个输入?

java - 我想知道是否可以创建一个强制执行特定返回类型的 Java 注释?

java - 数组中的多种类型用于初始化

java - 在 JavaFX 游戏中使用 Node 对象作为 GameObject 是否高效?