[英]how to define a variable of a class type in java when the class has extends?
我有這個 class:
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 是泛型類型。 我想在另一個 class 中定義一個變量 FindPath,並調用它的構造函數,基本上我想要這樣的東西:
public class TestD {
private FindPath <WNode,WNodePath extends Path<WNode,WNodePath>> Find_Path = new FindPath;
}
( WNode,WNodePath
是我在泛型類型中使用的另一個類)
我究竟做錯了什么? 如何做到這一點?
還有一個問題:|| WNodePath
class 的定義如下:
public class WNodePath implements Path<WNode, WNodePath > { .. }
路徑接口是Comparable
,這是否意味着WNodePath
也是 Comparable ,這意味着我可以在優先級隊列中使用它compareTo()
function 嗎?
當您聲明FindPath
引用時,您不使用extends
,它用於為該類型參數合法使用的類提供邊界(限制)。 (當您有通配符類型參數時,您可以使用擴展,但這與此處無關,請參閱https://docs.oracle.com/javase/tutorial/extra/generics/wildcards.ZFC35EZ8830D5FC69D807BADE5Z )
說啊:
private FindPath<WNode,WNodePath> findPath = new FindPath<>();
哪個編譯。
是的, WNodePath
實現了Comparable
,通過Path
傳遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.