ジェネリックスを用いたインターフェース定義
インターフェースのメソッド定義に於いて、メソッド名は統一したいが、引数の型はその時に応じたデータ型を扱いたい、という場合に、インターフェースの側では型パラメータで指定し、実装クラスの方で使用するデータ型を指定(してオーバーライド)するという使い方ができる。
この方法を用いることで、型の数だけメソッドを用意する必要がなくなり、また、型の追加が必要になったときにインターフェースを変更しないで済むようになる。
サンプルコード
○インターフェース
interface MyInterface <T> { void method (T t);}
○実装クラス
class Foo implements myInterface <String> {
public void method (String s) {}
}
class Bar implements myInterface <Integer> {
public void method (Integer i) {}
}