Elementという基本クラスがあります。他のいくつかのクラス(LabelやImageなど)は両方ともこのクラスを拡張します。
これで、次のメソッドを持つディスパッチクラスができました。
public class Dispatcher {
public static AbstractPropertyEditor<Label> createEditor(Label e) {
...
}
public static AbstractPropertyEditor<Element> createEditor(Element e) {
...
}
}
Label(Elementを拡張する)のインスタンスがあり、それをに渡したい場合createEditor()
、なぜ最も一般的なメソッド(2番目のメソッド)が呼び出されるのですか?最も具体的なメソッド(createEditor(Label e)
)が呼び出されるのは正常ではないでしょうか。
a)Elementを実装しているが、このディスパッチングクラスに独自の特定のメソッドを持たないすべてのクラスを「キャッチ」するには、Element-paramを使用したメソッドが絶対に必要です。
Java 6を使用していますが、これを「修正」するにはどうすればよいですか?
編集:さて、私はそれがジェネリックについてはまったくないことを認めなければなりません。しかし、それは私が最初にそれに遭遇した場所です。
ありがとう、よろしく