Я расширяю класс ThreadPoolExecutor. Внутри этого я хочу установить значение члена в beforeExecute (Thread t, Runnable r) и afterExecute (Runnable r, Throwable t). Я не знаю, как это сделать. Может ли кто-нибудь помочь мне в этом?
Предположительно, вы хотите получить доступ к полю экземпляра экземпляров Runnable
. Чтобы получить к ним доступ, вам необходимо сбрасывать Runnable
в фактический класс класса Runnable
, а затем обращаться к полям через ссылку downcast. Или еще лучше, сделайте поля частными и получите доступ к ним через вызовы getter/setter в ссылке.
Это может быть неудобно, если ваш Runnable
является анонимным внутренним классом. В этом случае вам может потребоваться включить его в именованный класс: либо вложенный, либо внутренний, либо верхний.
С другой стороны, если вы говорите о static
полях или методах класса реализации Runnable
, вы можете просто использовать их, как обычно, при условии, что модификаторы доступа разрешают это.
Runnable
. Я думал, что beforeExecute () будет хорошей отправной точкой для уведомления слушателя о том, что теперь мой исполняемый файл начинает свое выполнение.