我有SuperQueue类
public class SuperQueue<E> implements Queue<E>{
SuperQueue(Class<? extends Queue<E>> subqClass) {}
}
如何创建SuperQueue对象?我努力了:
SuperQueue<Integer> superq = new SuperQueue<Integer> (ConcurrentLinkedQueue.class)
和
SuperQueue<Integer> superq = new SuperQueue<Integer> (ConcurrentLinkedQueue<Integer>.class)
最佳答案
在你的代码中
SuperQueue<Integer> superq = new SuperQueue<Integer>(ConcurrentLinkedQueue.class);
您正在传递不兼容的类型,因为
Class<ConcurrentLinkedQueue>
无法转换为Class<? extends Queue<Integer>
为了创建对象,您需要传递一个实现
Queue<Integer>
的类,例如class Foo implements Queue<Integer> {...}
然后你可以像这样使用它
SuperQueue<Integer> superq = new SuperQueue<Integer>(Foo.class);