は、次の例を考えてみましょう:異なるインターフェイスを持つ同じインターフェイスを含めることはできませんか?
public class Sandbox {
public interface Listener<T extends JComponent> {
public void onEvent(T event);
}
public interface AnotherInterface extends Listener<JPanel>, Listener<JLabel> {
}
}
これは、次のエラー
しかし/media/PQ-WDFILES/programming/Sandbox/src/Sandbox.java:20: Sandbox.Listener cannot be inherited with different arguments: <javax.swing.JPanel> and <javax.swing.JLabel>
public interface AnotherInterface extends Listener<JPanel>, Listener<JLabel> {
^
1 error
なぜで失敗しますか?生成されたメソッドに重複はありません。実際のところ、それは本質的には意味します。
public interface AnotherInterface {
public void onEvent(JPanel event);
public void onEvent(JLabel event);
}
重複していません。それでなぜ失敗するのですか?場合
あなたの私がやって、より良い解決策を持っているんだか疑問に思う:私はイベントの束と上記ほぼ正確Listener
クラスのようなものだリスナー・インターフェースを持っています。私はアダプタとアダプタインタフェースを作成したいと思います。そのために、すべてのListenerインタフェースを特定のイベントで拡張する必要があります。これは可能ですか?これを行うより良い方法はありますか?
ああ、私はタイプ消去について忘れました。私がしたいことを達成する別の方法を知っていますか? – TheLQ
@TheLQを更新しました。 –
@Stasこれはイベントごとに1トンのコード(〜50)のようです。イベントごとにリスナーを明示的に作成する必要があるかもしれません。 – TheLQ