57 votes

En java, la valeur de retour dans le bloc synchronisé semble être un mauvais style. Est-ce vraiment important?

J’ai une collections.synchronizedList of WeakReference, _components;

J’ai écrit quelque chose comme ce qui suit, en m’attendant à ce que le conformateur se plaint:

Mais le compilateur est parfaitement satisfait. Notez que List.add() renvoie TRUE. Alors ok, toute sortie d’un bloc synchronisé libère le verrou, mais cela n’a-t-il pas l’air étrange ? C’est un peu comme un « trou » dans le bloc, semblable à l’utilisation du retour dans une boucle.

Seriez-vous heureux de maintenir un code comme celui-ci?

64voto

Jon Skeet Points 692016

C’est tout à fait correct - tout comme le retour d’une boucle, ou d’un bloc qui a un bloc approprié. Vous avez juste besoin d’être conscient de la sémantique, à quel point cela a un sens parfait.

C’est certainement un code plus simple que d’introduire une variable locale pour le plaisir :

51voto

Mark Byers Points 318575

Il n’y a rien de mal à retourner à l’intérieur d’un `` bloc. Le verrou sera relâché correctement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X