现在,我正在尝试创建一个通用类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>
答案 0 :(得分:3)
您的构造函数签名为BTree(int, Class<T>)
所以看起来你需要做一些像
这样的事情SSet<Integer> tree = new BTree<Integer>(2, Integer.class);
请注意,引用是SSet<>
而不是BTree<>
- 您可以在那里使用BTree<>
引用,如果您愿意,但通常它优于{{3除非你有理由不这样做。
答案 1 :(得分:0)
您在上面提供的构造函数,接受两个值
public BTree(int b, Class<T> clz) {
this(b, new DefaultComparator<T>(), clz);
}
但你只提供一个,
BTree<Integer> myTree=new BTree<Integer>(Integer.class);
你有没有任何其他构造函数,如果没有,那么使用以下
int a=5;
SSet<Integer> myTree=new BTree<Integer>(a,Integer.class);