J'écris le constructeur pour ma classe "principale". La première chose à faire est d'appeler une méthode pour utiliser commons-cli pour analyser la ligne de commande. Si la méthode parseOptions
renvoie la valeur false, une erreur s'est produite et le constructeur doit quitter.Retour anticipé d'un constructeur Scala
J'ai essayé d'écrire le code suivant
if (!parseOptions(args)) return
mais le compilateur se plaint que j'ai une « déclaration de retour définition de la méthode à l'extérieur ».
court d'appeler System.exit(1)
ou inverser le booléen (et mettre tout le reste de ma logique dans l'instruction if
, est-il possible de revenir « début » d'un constructeur?
Je suppose que je pourrais avoir la parseOptions
méthode jeter un IllegalArgumentException
et attraper dans mon objet Main
.
Merci.
Bien que je suis d'accord avec les autres réponses que aucun constructeur devrait revenir normalement si elle n'a pas pu pour mettre l'instance dans un état qui satisfait les invariants de sa classe, je me demande pourquoi vous êtes opposé à l'utilisation de 'if'? –
Si j'ai plusieurs conditions qui peuvent toutes entraîner un retour anticipé, je finirai par une cascade 'if' à plusieurs niveaux. – Ralph
Alors? Si c'est la logique de votre constructeur, c'est la logique de votre constructeur. Il est généralement conseillé de ne pas avoir beaucoup de logique complexe dans vos constructeurs. Idéalement, ils "notent" simplement les valeurs qui composent l'état/la valeur de l'instance. –