したがって、クライアントは次の方法でクラスを作成します。
public class Tester implements Test<Type1, Type2, Type3> {
@override
public method1(...)
...
}
次に、クライアントから .class ファイル (IE Tester.class) が渡されます。
次に、クライアントのクラスをインスタンス化し、ジェネリックが使用する型に基づいて method1 を実行します。これまでのところ、次のコードがありますが、正しい道を進んでいるとは思いません。
//tempClass = <ClassName>.class
Type[] genericTypes;
Type[] genericInterfaces = tempClass.getGenericInterfaces();
if(genericInterfaces[0] instanceof ParameterizedType){
genericTypes = ((ParameterizedType)genericInterfaces[0])
.getActualTypeArguments();
}
Class<Tester<genericTypes[0], genericTypes[1], genericTypes[2]>> classTest
= ( Class<Tester<genericTypes[0], genericTypes[1], genericTypes[2]>>) tempClass
Constuctor<...> = ... //get the constructor
//Create the new instance by calling .newInstance()
しかし、Eclipse では Class> 行に多くのエラーが表示されるため、これは正しいパスではないと思います。私は何を間違っていますか?