2011-07-28 79 views
1

该类旨在表示一对任意类型的对象 - python开发人员可能会将其视为2元组。如何创建具有更多限制类型的泛型类的子类?

public class Pair<DD extends Comparable<DD>,VV> implements Comparable< Pair<DD,VV> > { 
    DD d; 
    VV v; 
    // Implementation removed. 
    } 

我想创建一个名为NumberPair新的子类 - 唯一的区别是,虽然可以想见包含任何两个类的对象,我NumberPair类将只允许包含数字

有人可以告诉我如何表达这个?

PS。诚然,这看起来像一个愚蠢的设计,因为我们可以使用这个类的任何地方,我们也可以使用地图 - 现在请忽略。

回答

1

我不知道如果我完全搞定这个问题,但我认为这可能是你在找什么:

public class NumberPair<NDD extends Number & Comparable<NDD>, NVV extends Number> extends Pair<NDD, NVV> {} 

这迫使两键入参数以扩展Number。

+0

是的,这是我想要的。 @ JustYo的解决方案是正确的,但我想我错了这个问题。我不想放弃将其绑定到数字的特定实现的能力,但是如果有人用任何非数字创建实例,我都希望它失败。 –

1

这是声明:

public class NumberPair<VV> extends Pair<Number,VV> { 

}