我有一门课:
public class FindPath<T,N extends Path<T,N>> {
public FindPath() {
// the constructor ...
}
}
和路径接口:
public interface Path<N, P extends Path<N,P>>
extends Iterable<N>, Comparable<Path<?,?>>
其中t、p和n是泛型类型。我想在另一个类中定义一个变量findpath,并调用它的构造函数,基本上我想这样:
public class TestD {
private FindPath <WNode,WNodePath extends Path<WNode,WNodePath>> Find_Path = new FindPath;
}
( WNode,WNodePath
是我在泛型类型中使用的另一个类)
我做错什么了?如何做到这一点?
还有一个问题:| |的 WNodePath
类的定义如下:
public class WNodePath implements Path<WNode, WNodePath > { .. }
路径接口是 Comparable
,这是否意味着 WNodePath
是可比的,这意味着我可以用它 compareTo()
优先级队列中的函数?
1条答案
按热度按时间pexxcrt21#
当你宣布
FindPath
你不用的参考资料extends
,用于提供合法用于该类型参数的类的边界(限制)(当您有一个通配符类型参数时,可以使用extends,但这与此无关,请参阅https://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html)只要说:
它编译。
对,
WNodePath
工具Comparable
,通过Path
.