Это говорит о том, что объект Thread
, возвращаемый Thread.currentThread()
, не является экземпляром EventDispatchThread
.
. Чтобы избежать проблемы, нужно выяснить, каков класс этого объекта.на самом деле, и использовать этот класс для получения объекта Method
.(Вы должны быть в состоянии выяснить, что это такое, напечатав объект, полученный из Thread.currentThread().getClass()
в том месте, где вы пытаетесь вызвать метод.
В Javadoc для invoke
это говоритthis:
"Throws IllegalArgumentException
- если метод является методом экземпляра, а указанный аргумент объекта не является экземпляром класса или интерфейса, объявляющим базовый метод (или его подкласс или реализатор)); если число фактических и формальных параметров различается, если преобразование развертывания для примитивных аргументов завершается неудачей или если после возможного развертывания значение параметра не может быть преобразовано в соответствующий тип формального параметра путем преобразования вызова метода. "
Мое чтение вашего кода таково, что у вас есть правильное число и тип фактических аргументов, поэтому это должно быть проблемой с классом потока.