具有两个泛型参数的类的Java泛型类型检查应该只包含相同类型的类

我有一种情况,我想在Java中比较一组配对。我将使用来自Apache的这个Pair-interface。

一对的左边和右边的值可以是实现可比较的类型,所以我声明这个列表如下:

List<Pair<Comparable, Comparable>> listOfPairs;

左边和右边的值应该总是属于相同的类型,例如Pair<String, String>Pair<Integer, Integer>,并且这两种类型的值可以添加到同一列表中。

这是可行的:

    Pair<Comparable, Comparable> p1 = new ImmutablePair<>("a", "b");
    Pair<Comparable, Comparable> p2 = new ImmutablePair<>(2, 3);

    listOfPairs.add(p1);
    listOfPairs.add(p2);

这也是可行的:

    Pair<Comparable, Comparable> p3 = new ImmutablePair<>("a", 2);
    listOfPairs.add(p3);

有没有可能有一个类型检查,以确保一对的类型是相同的类型,一旦它被添加到列表中,例如在编译时失败?

转载请注明出处:http://www.400tyeyaji.com/article/20230526/1274206.html