class Super<T> {}
class Child<A, B> extends Super<B> {}
class Code {
public void method(Child<String, Integer> child) {}
}
リフレクションを使用してパラメーターの型を取得できます。
ParameterizedType ptype = (ParameterizedType) Code.class.getMethod("method").getGenericParameterTypes()[0]
しかし、どうすれば ptype の汎用スーパークラスを取得できますか (つまり、 だけSuper.class
でなく、型パラメーターもInteger
)
私の使用例は、リフレクションを使用して、メソッドの引数の 1 つが MyClass オブジェクトのコレクションであるかどうかを判断することです (確認する実際の引数インスタンスがありません)。