0

在我的 Junit 中,我正在尝试使用PrivilegedAccessor以下方法执行方法,但得到NoSuchMethodException: Invalid Method getInsurance-

PrivilegedAccessor.invokeMethod(InsuranceRetriever,
                    "getInsurance", new Object[] { code}, new Class[] {
                            Long.class});

以下是经过测试的方法声明。

private InsObj getInsurance(long code)

*请注意,我正在传递 Long.class 而真正的参数是原始的 long。如何传递原始参数。

4

1 回答 1

3

尝试这个:

PrivilegedAccessor.invokeMethod(InsuranceRetriever,
                "getInsurance", new Object[] { code }, 
                new Class[] { Long.TYPE });

解释:

原始类型的类对象位于每个原始类型的每个 java.lang 对象的 TYPE 静态最终常量下。Boolean.TYPE, Integer.TYPE, Byte.TYPE,等Short.TYPE_Long.TYPE

于 2014-01-30T16:25:38.877 回答