因此,客户端将以下列方式创建一个类:
public class Tester implements Test<Type1, Type2, Type3> {
@override
public method1(...)
...
}
然后客户端会将.class文件(IE Tester.class)传递给我们。
然后,我们希望实例化客户端的类并根据泛型使用的类型运行他们的方法 1。到目前为止,我有以下代码,但我认为我没有走正确的道路:
//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> 行中给了我很多错误,所以我认为这不是正确的路径。我究竟做错了什么?