我试图用给定的输入参数调用API。输入参数作为列表出现。现在我的工作是逐个获取API的参数类型,并从List构建所需的类型实例。我可以为简单的java类型,List,Set做,但我被困在数组。
Method method = getMethodFromTheClassBasedOnvalues( loadedClass, apiName, numberOfParams);
Type[] apiMethodParams = method.getGenericParameterTypes();
List<Type> expectedParamTypes = Arrays.asList(apiMethodArgTypes);
List<Object> actualValues = // method input.
List<Object> argsList = new ArrayList<Object>();
for (int i = 0; i < expectedParamTypes.length; i++) {
argsList.add(castToRequiredType(expectedParamTypes.get(i),
actualValues.get(i)));
method.invoke(loadClass.newInstance(), argsList.toArray());
当我得到API类型的方法(String,String [])时出现问题我尝试通过调用method.getGenericParameterTypes()来获取GenericTypes,返回和数组如下:
[class java.lang.String, class [Ljava.lang.String;]
或者如果一个参数[Ljava.lang.String;
基于此,我怎么知道它是否采用Array of String。我看到不同之处是类名是在[L并且完成之后开始;但它有保证吗?
对于CustomObject [],bevhiour是否也相同?
有没有什么聪明的方法可以知道该方法是采用数组并最近构建它? 任何有关这方面的想法都会有所帮助。
提前致谢。