0

2つのパラメーターを取得するメソッドを作成したいと思います。

  1. インターフェイス。
  2. そのインターフェースを実装するクラス。

汎用的にしたい(コンパイル時のタイプセーフ)。

方法はありますか?そうでない場合、代替手段は何ですか?

インターフェイスである汎用パラメータを取得するオプションはありますか?どうやって宣言しますか??

4

2 に答える 2

5

このようなもの ??

public <I, K extends I> void method(I i, K k){

    }

上記のメソッドでは、最初のパラメーターはインターフェースであり、2番目のパラメーターはそのインターフェースを実装する任意のクラスです。

    Interface1 i1;
    method(i1, class1); //class1 implements Interface1

ジェネリックスでは、インターフェイスの実装とクラスの拡張は、extendsキーワードを使用して表されます。ジェネリックスの世界にはimplementsキーワードはありません。

于 2012-11-27T10:47:25.893 に答える
2
public <T extends Interface> T myMethod(Interface I, Class<T> myClass) () {...}

メソッドがTを返す場合

于 2012-11-27T10:47:43.520 に答える