Copie possible: need-help-returning-object-in-thread-run-methodComment accéder à un objet Runnable par Thread?
Bonjour. J'ai une classe implémentant runnable et j'ai un List, stockant des Threads instanciés avec différents objets de cette classe. Comment puis-je accéder aux propriétés des objets sous-jacents compte tenu de l'objet thread qui les exécute? Voici un exemple:
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?
}
}
En plus de ne pas être vraiment sûr de ce que vous avez à l'esprit, je pense que vous aurez besoin de réflexion pour cela, et Assurez-vous également qu'il n'y a pas de gestionnaire de sécurité sur votre chemin. Toutefois, vous pourriez peut-être décrire plus en détail ce que vous essayez d'accomplir. –
Je crois que vous pouvez sous-classer 'Thread' lui-même et remplacer' Thread.run() 'au lieu de lui passer un' Runnable'. Alors 'foo' serait juste un attribut du' Thread'. – MatrixFrog
@MatrixFrog: Ce n'est pas bon si la classe Runnable a besoin de sous-classer quelque chose d'autre, puisque Java n'autorise qu'un seul héritage. Le but principal de java.lang.Runnable, pour autant que je sache, est de contourner ce problème en vous permettant d'utiliser Thread (java.lang.Runnable) pour ajouter une fonctionnalité de thread à une classe qui sous-classe déjà quelque chose d'autre. –