Это означает, что объект value
, который вы передаете в invoke
, не является экземпляром класса, для которого определен method
. Это связано с тем, что первый аргумент invoke - это объект, для которого делает вызов, а последующие аргументы - параметры вызываемого метода. (В данном случае это выглядит так, как будто значение должно быть экземпляром com.xxx.Currency
- что, конечно, не так, потому что это List
.)
Поскольку вы вызываете нестатический метод (и сталкиваетесь с проблемами при создании нового экземпляра), для отражательного эквивалента obj.setCurrencyCode(value)
в конце вашего блока try вам нужно будет вызвать
method.invoke(obj, value)
вместо вашего текущего однократного вызова.