如何指定自身声明泛型类型的泛型类型

时间:2012-09-25 13:44:36

标签: java generics

我有一个类Range,其声明如下:

public abstract class Range<T extends Comparable<T>>

我想创建一个类RangeSet,它接受一个泛型类型 - 一个Range。但是,在RangeSet类的主体中,我希望能够引用两个泛型类型

  1. 使用和/
  2. 键入RangeSet的范围
  3. 使用
  4. 键入范围T extends Comparable<T>

    这可能吗?

2 个答案:

答案 0 :(得分:2)

您可以定义

class RangeSet<T extends Comparable<T>, R extends Range<T>>

答案 1 :(得分:1)

不,您必须让RangeSet有两个类型参数。例如:

public class RangeSet<T extends Comparable<T>, R extends Range<T>> {
    // ...
}

但是,您确定需要R的{​​{1}}类型吗?您是否只能在Range中接受RangeSet而非Range<T>的方法?