思考:如何使用double []方法参数创建一个Class []

时间:2017-10-10 17:29:28

标签: java unit-testing reflection

我有一个方法:

 static double sum(double[] out, int numberVerticies) {}

我正在尝试使用反射对其进行单元测试。我一直得到NoSuchMethodException。

我认为这是因为我传入的args与该方法不匹配。

这是我的测试方法:

 @Test
void sum(){
    double[] out ={1,2,3,4};
    int numberVerticies = 4;
    Class[] args = new Class[]{Array.class,Integer.TYPE};
    Object[] params = new Object[]{out,numberVerticies};

    try {
        Method sum = reflectClass.getDeclaredMethod("sum", args);
        sum.setAccessible(true);


        double returnValue = (double) sum.invoke(pageRank,params);

    } catch (NoSuchMethodException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }

我认为正是这条线导致了这个问题:

        Class[] args = new Class[]{Array.class,Integer.TYPE};

什么类型或类是double []。

0 个答案:

没有答案