我有2个不同的班级。一个是通用的valueHolder,可以包含任何扩展数字的内容。

class ValueHolder<T extends number>{
    private T currentValue;

   //more functions, database logic, etc...
}


另一个类更复杂,并且具有“ targetValue”。同样,其参数设置如下:

class MoreComplexClass<T extends ValueHolder<?>>
    private T valueHolder;
    private XXX requiredValue;

    //a lot more functions.
}


是否可以将valueHolder的类型用于MoreComplexClass的requiredValue?
我要实现的目标是:Beeing能够将currentValue和requiredValue与> ==

最佳答案

答案是肯定的,您可以通过以下方式声明复杂的类:

class MoreComplexClass<N extends Number, T extends ValueHolder<N>>
    private T valueHolder;
    private N requiredValue;

    //a lot more functions.
}


但是由于使用的是Number类,因此将无法使用这些运算符,因此需要使用XXXvalue()中的doubleValue()方法之一(即:longValue()Number) >类即可使用这些运算符。

关于java - 使用嵌入式泛型的泛型类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14317259/

10-12 06:06