Как получить доступ к объекту Runnable по потоку? - PullRequest
21 голосов
/ 20 февраля 2010

Возможный дубликат: Need-Help-Returning-Object-In-Thread-Run-метод

Hello. У меня есть класс, реализующий runnable, и у меня есть список, хранящий потоки, созданные с различными объектами этого класса. Как я могу получить доступ к свойствам нижележащих объектов, если объект потока выполняет их? Вот пример:

public class SO {
    public static class TestRunnable implements Runnable {
        public String foo = "hello";

        public void run() {
            foo = "world";
        }
    }

    public static void main(String[] args) {
        Thread t = new Thread(new TestRunnable());
        t.start();
        //How can I get the value of `foo` here?
    }
}

Ответы [ 11 ]

0 голосов
/ 09 июля 2012

Вы можете создать подкласс Thread и добавить нужный метод. Вам придется сохранить свою собственную копию целевого Runnable и переопределить все конструкторы Thread, которые вы используете для создания Thread, из-за некоторых раздражающих деталей реализации Thread.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...