2
私はこのようになります新しいクラスを作成しようとしています:<Generic extends X>型のパラメータを持つクラスを実装することは可能ですか?
public class WikiGraph<V extends Node> implements DirectedGraph<V extends Node>
これは違法であると思われる、と私は、グラフを拡張し、ノードのサブクラスであるパラメータを使用しようとすると、この問題です。私は次のようなサブクラスを作成しようとしています:
public class WikiGraphWeighted<WeightedNode> implements DirectedGraph<WeightedNode>
これに対する回避策はありますか?私がしようとしていることは可能なのでしょうか?
'WikiGraphはDirectedGraph 'を実装するだけです。 2番目の ''は、最初に設定したすべての制約を使用します。 –
yshavit
ありがとうございました@yshavit、それは解決策のようです! – relisher
'WikiGraph' *の' 'は型パラメータを宣言していますが、' implements DirectedGraph '節は型パラメータを使ってスーパークラスのパラメータ化を記述しています。宣言['class Enum >'](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html)を見ると、これは直感的ではありません。 'Enum ' 'は、typeパラメータを宣言しますが、 '... extends Enum ' *の内側の ''は、それ自身の宣言の中でtypeパラメータを使います。宣言だけに制約があります。 –
Holger