0

したがって、クライアントは次の方法でクラスを作成します。

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> 行に多くのエラーが表示されるため、これは正しいパスではないと思います。私は何を間違っていますか?

4

1 に答える 1