使用PrivilegedAccessor的原始参数的方法

时间:2014-01-30 16:22:14

标签: java junit nosuchelementexception

在我的Junit中,我尝试使用PrivilegedAccessor执行一个方法如下,但获取NoSuchMethodException: Invalid Method getInsurance -

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

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

private InsObj getInsurance(long code)

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

1 个答案:

答案 0 :(得分:3)

试试这个:

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

说明:

基本类型的类对象可以在每个基本类型的每个java.lang对象的TYPE静态最终常量下找到。 Boolean.TYPEInteger.TYPEByte.TYPEShort.TYPELong.TYPE等。