2014-01-30 4 views
0

В пределах моей JUnit, я пытаюсь выполнить метод с использованием PrivilegedAccessor следующим образом, но получение NoSuchMethodException: Invalid Method getInsurance -Метод с примитивным аргументом с использованием PrivilegedAccessor

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

Ниже тестируемый объявление метода.

private InsObj getInsurance(long code) 

* Обратите внимание, что я прохожу Long.class, тогда как реальный аргумент примитивен долго. Как передать примитивный аргумент.

ответ

3

Попробуйте это:

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

Объяснение:

Объекты класса для примитивных типов находятся под TYPE статической окончательной постоянной в каждом из объектов java.lang для каждого из примитивных типов. Boolean.TYPE, Integer.TYPE, Byte.TYPE, Short.TYPE, Long.TYPE и т.д.

+0

Perfect. Благодарю. –

Смежные вопросы