varargs и нулевой аргумент

Итак, у меня странная проблема. Это выражение:method.invoke(target, null)выдает java.lang.IllegalArgumentException :неправильное количество аргументов

Проблема в том, что это выражение находится глубоко внутри hibernate (BasicPropertyAccessor$BasicGetter, если быть точным ), и я думаю, что оно должно работать нормально (до недавнего времени)

Я отладил эту проблему в eclipse, и действительно, если я (в представлении «Отображение» )вызову method.invoke(target)или method.invoke(target, (Object[]) null), все работает нормально. Я уверен, что в моем классе есть этот геттер, и у него нет аргументов. Итак... вопрос, что, черт возьми, происходит?!

РЕДАКТИРОВАТЬ:

  • метод является экземпляром java.lang.reflect.Method и указывает на указанный геттер
  • target — экземпляр класса с открытым X getX ()getter
  • JDK 1.6.0 _31
  • код в спящем режиме (BasicPropertyAccessor :143):

    public Object get(Object target) throws HibernateException {
        try {
            return method.invoke(target, null);
        }
        catch{... }
    }
    
6
задан mabn 12 August 2012 в 23:02
поделиться