现在,我正在尝试创建一个通用类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/