现在,我正在尝试创建一个通用类BTree<T>的实例,该实例实现一个接口SSet<T>,而该接口又实现了Iterable<T>
我从BTree<T>类中删除了大部分代码,只保留了构造函数。但是,如果有必要,我可以在有人认为有帮助的情况下添加整个代码。 BTree<T>类看起来像这样:

package assignment2_draft;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;

public class BTree<T> implements SSet<T> {

    //Some methods

    public BTree(int b, Class<T> clz) {
    this(b, new DefaultComparator<T>(), clz);
    }

}


在我自己的类中,我试图调用BTree<T>类并将Integer传递给泛型。在我的课堂上,我有:

BTree<Integer> myTree=new BTree<Integer>(Integer.class);


以前曾在通用类中工作过,但没有此类。我想知道,我传递的参数正确吗?还是在创建SSet<T>实例时需要以某种方式引用BTree<T>

最佳答案

您的构造函数签名为BTree(int, Class<T>)

所以看来您需要做类似的事情

SSet<Integer> tree = new BTree<Integer>(2, Integer.class);


请注意,该引用是SSet<>而不是BTree<>-如果需要,可以在其中使用BTree<>引用,但是通常,除非您有理由不推荐,否则最好使用program to an interface

关于java - Java:如何创建实现抽象接口(interface)的泛型类的实例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47088972/

10-11 17:37