Retours multiples et détermination de la valeur finale
Une pratique de codage particulière implique des fonctions avec plusieurs instructions de retour, comme illustré dans l'extrait de code ci-dessous :
String test() { try { return "1"; } finally { return "2"; } }
Compte tenu de cette construction, la question se pose : la spécification du langage Java (JLS) définit-elle le retour final valeur cohérente sur toutes les machines virtuelles Java (JVM) ?
Selon le JLS, la valeur précise renvoyée par une fonction avec plusieurs instructions de retour est explicitement spécifiée. Dans l'exemple fourni, la valeur de retour est clairement définie comme étant « 2 ». Cela signifie que si une JVM s'écarte de cette spécification, elle est considérée comme non conforme au JLS.
Il est important de noter que la plupart des compilateurs émettront un avertissement ou un message d'erreur concernant cette pratique non conventionnelle. Par exemple, Eclipse signalera à tort que le bloc de retour ne sera jamais exécuté. Néanmoins, le JLS a priorité sur les avertissements du compilateur.
Bien que le JLS dicte la valeur de retour des fonctions avec plusieurs retours, il décourage fortement leur utilisation en raison de problèmes de clarté et de maintenabilité. Il est généralement considéré comme une mauvaise pratique de s'appuyer sur de telles constructions, et les développeurs devraient viser un code plus simple et plus lisible.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!