classe anonyme et création de thread à la volée - Java - Programmation
Marsh Posté le 22-08-2002 à 16:05:01
El_Gringo a écrit a écrit : ...et public void Thread c pas mieux !? |
Ben void pour un constructeur, ci pas top
Marsh Posté le 22-08-2002 à 16:06:05
Thinking in java c'est bien :
Code :
|
Marsh Posté le 22-08-2002 à 16:06:53
le bloc que j'ai mit en rouge sert de constructeur.
par contre, si tu veux mettre des paramètres à ce constructeur, là je sais pas ...
Marsh Posté le 22-08-2002 à 16:08:23
mirci bocoup. Maintenant ça me revient ! Je l'avais lu quelque part, mais je savais plus où, et c'est pour ça que j'ai demandé
Merci.
Et sinon, au niveau "propreté", ça va, où je me plante ?
Il me semble que pour créer un petit thread c'est justifié ...
Marsh Posté le 22-08-2002 à 16:10:05
benou a écrit a écrit : le bloc que j'ai mit en rouge sert de constructeur. par contre, si tu veux mettre des paramètres à ce constructeur, là je sais pas ... |
Arggh
Code :
|
Citation : call to super must be first statement in constructor |
Marsh Posté le 22-08-2002 à 16:10:11
bobuse a écrit a écrit : Et sinon, au niveau "propreté", ça va, où je me plante ? Il me semble que pour créer un petit thread c'est justifié ... |
niveau propreté, c'est dégeulasse !
tu ferais miex de créer une class (interne si tu as besoin) qui implémente runable. ensuite tu passes cette classe en paramètre du constructeur de la class Thread et tu fais un start dessus.
regarde la javadoc de Thread et de Runable ...
Marsh Posté le 22-08-2002 à 16:12:07
bobuse a écrit a écrit : Arggh
|
Code :
|
Marsh Posté le 22-08-2002 à 16:12:18
benou a écrit a écrit : niveau propreté, c'est dégeulasse ! tu ferais miex de créer une class (interne si tu as besoin) qui implémente runable. ensuite tu passes cette classe en paramètre du constructeur de la class Thread et tu fais un start dessus. regarde la javadoc de Thread et de Runable ... |
Ha bon ?
Je sais comment fonctionne Thread et Runnable (merci kan même).
Mais bon, c'est plus lisible comme ça et ça revient au même, en plus je vais l'utiliser q'une fois ce thread
Marsh Posté le 22-08-2002 à 16:13:45
benou a écrit a écrit :
|
c bon! ça marche capitaine, ça marche !
Marsh Posté le 22-08-2002 à 16:13:49
a la rigueur, fait plutot ca :
Code :
|
Marsh Posté le 22-08-2002 à 16:14:15
bobuse a écrit a écrit : |
ca marche pas ?
Marsh Posté le 22-08-2002 à 16:16:58
benou a écrit a écrit : ca marche pas ? |
Si ça marche
benou a écrit a écrit : a la rigueur, fait plutot ca :
|
Ha ouais sympa !
Marsh Posté le 22-08-2002 à 16:17:17
El_Gringo a écrit a écrit : ...et public void Thread c pas mieux !? |
Marsh Posté le 22-08-2002 à 16:17:40
je viens de tester et ca ca marche :
Code :
|
mais je préfère cette version :
Code :
|
Marsh Posté le 22-08-2002 à 16:20:00
benou a écrit a écrit : je viens de tester et ca ca marche :
|
Je confirme!
J'adopte la deuxième, et je vais en foutre partout
Marsh Posté le 22-08-2002 à 16:20:36
benou a écrit a écrit : sinon, c'est quoi l'intéret de commer ton thread ? |
Bin, pour le debuggage ...
Marsh Posté le 22-08-2002 à 16:21:31
bobuse a écrit a écrit : Ha bon ? Je sais comment fonctionne Thread et Runnable (merci kan même). Mais bon, c'est plus lisible comme ça et ça revient au même, en plus je vais l'utiliser q'une fois ce thread |
Ben non justement, c'est pas plus lisible.
En général, dans ces cas là, moi, je fais une inner class privée non anonyme (si possible statique). La seule différence avec une classe anonyme, c'est juste qu'elle a un nom (ça documente un peu plus...), et pour le compilo ou la machine virtuelle, ça ne change absolument rien d'autre. Et si elle doit grandir, ben... elle est déjà prête.
Au passage, si tu rends ton inner classe statique, la création de l'objet est un poil plus légère aussi.
Marsh Posté le 22-08-2002 à 16:27:54
benou a écrit a écrit : qu'est ce que ca t'apporte pour le débugage ? |
bin pour suspendre des threads ... ou pour les suivre ... je sais pas trop, mais je préfère les nommer, comme ça si j'en ai besoin, c'est prêt ...
Marsh Posté le 22-08-2002 à 16:45:15
bobuse a écrit a écrit : bin pour suspendre des threads ... ou pour les suivre ... je sais pas trop, mais je préfère les nommer, comme ça si j'en ai besoin, c'est prêt ... |
ouais d'accord
Marsh Posté le 22-08-2002 à 16:47:25
Encore mieux :
Code :
|
Marsh Posté le 22-08-2002 à 16:49:39
bha ouais mais moi j'aime bien éviter de déclarer les variables quand je peux. la c'est typiquement le ca ...
new Truc.machin() ca rulez !
Marsh Posté le 22-08-2002 à 16:50:17
BifaceMcLeOD a écrit a écrit : Encore mieux :
|
tsst tsst, ça fait deux instructions là !
Marsh Posté le 22-08-2002 à 16:51:43
benou a écrit a écrit : bha ouais mais moi j'aime bien éviter de déclarer les variables quand je peux. la c'est typiquement le ca ... new Truc.machin() ca rulez ! |
Moi aussi, j'aime faire ça... sauf quand la classe est anonyme ! Parce que l'appel à la méthode machin() passe complètement inaperçu, du coup !
Il y a des moments où la compacité du code a ses limites....
Marsh Posté le 22-08-2002 à 17:38:46
BifaceMcLeOD a écrit a écrit : Moi aussi, j'aime faire ça... sauf quand la classe est anonyme ! Parce que l'appel à la méthode machin() passe complètement inaperçu, du coup ! Il y a des moments où la compacité du code a ses limites.... |
bha dans ce cas là ca va : c'est bien indenté, donc on voit.
et puis d etoute façon un Thread anonyme, ca sert à rien d'autre que d'être lancé totu de suite !
Marsh Posté le 23-08-2002 à 09:17:16
Pour la petite histoire, je l'ai des-anonymisée ma classe !
Marsh Posté le 22-08-2002 à 16:01:16
vouala
Bon alors 2 choses :
* Soit vous trouvez ça super crade, et vous me proposez autre chose (ou vous me laissez pleurer)
* Soit vous avez une idée de pourquoi ça me sort :
invalid method declaration; return type required
public Thread() {
^
Merci
Message édité par bobuse le 22-08-2002 à 16:18:31