0
votes

Essayer d'éviter avoir deux blocs d'essai dans ma méthode

Comment puis-je éviter de faire dupliquer le si condition de mon code: xxx

J'ai essayé de vous adapter à partir des éléments suivants: xxx < / Pré>

Mais de cette façon, j'ai un java essayer à l'intérieur d'un scala essayez qui ne semble pas juste. Comment puis-je éviter d'avoir deux blocs d'essai? Je veux fondamentalement, je veux juste que la ressource que j'ai acquise soit nettoyée après la fin de la méthode d'exécution.


3 commentaires

Vous n'avez pas besoin de vérifier si (out! = null) . OUT est défini à tout moment en tant que Nouveau FileWriter ("/ TMP / FOO.TXT") . Pouvez-vous s'il vous plaît expliquer ce que vous voulez réaliser avec vos changements?


Je tiens à vous assurer que les ressources que j'ai acquises sont libérées lorsque le thread finit l'exécution de la méthode. C'est la poignée du fichier.


Si de nouvelles lancers, vous n'atteinez pas ce si bloc du tout et si neuf ne lancera pas out! = Null toujours.


3 Réponses :


1
votes

Avec SCALA 2.13, vous pouvez écrire ce qui suit à l'aide de scala.util.utilisant xxx


3 commentaires

Au lieu de la correspondance {} Je vais avec .fold () , mais c'est juste moi.


Ouais, je veux garder le style original de la question


Je suis sur 2.12 - Je ne peux pas passer à 2.13



1
votes

Pourquoi ne pas simplement déplacer le out.close () en dehors du résultat du bloc d'essai? Si le même chèque est effectué, quel que soit le succès ou une échec, je ne vois pas le bénéfice de le faire là-bas. Quelque chose comme ceci: xxx


0 commentaires

1
votes

Si vous ne pouvez pas utiliser à l'aide de , vous pouvez utiliser try-attrape-enfin : xxx

ou modèle de prêt: xxx

Si vous avez un effet CATS (et si vous remplacez Essayez d'essayer avec quelque chose qui est légal), vous pouvez utiliser la ressource xxx


0 commentaires