2010-01-25 10 views

Répondre

8

Ils peuvent être déclarés définitifs. Votre problème réel se situe ailleurs.

5

De l'Java specification §4.5.4:

Une variable peut être déclarée finale. Une dernière variable ne peut être affectée qu'une seule fois. Il s'agit d'une erreur de compilation si une variable finale est affectée à moins qu'elle ne soit définitivement non affectée (§16) immédiatement avant l'affectation.

En d'autres termes, c'est parfaitement légal. En outre, il est considéré comme best practice d'utiliser final autant que possible avec des variables locales.

L'utilisation systématique de variables locales (le cas échéant) peut également être utile. [...] Une approche raisonnable consiste à utiliser final pour les variables locales seulement s'il y a au moins une variable locale non finale dans la méthode; cela permet de distinguer rapidement les variables locales non finales des autres.

+0

Pour class/instance, vous devez utiliser délibérément final, mais pour les variables locales (si elles ne sont pas accessibles par des classes locales/anonymes), c'est plus une question de goût imho. – helpermethod

1

qui a dit que nous ne pouvons pas. nous pouvons déclarer. Vous pourriez avoir confondu avec statique qui ne peut pas être utilisé dans les méthodes.

0

Erreur stupide! Vous avez probablement manqué de mentionner la variable de référence et Eclipse se plaint comme 'Erreur de syntaxe sur le jeton "final", Type invalide'. Exemple final Pojo = new Pojo(); qui a la variable de référence manquant alors qu'il fonctionne parfaitement si final Pojo pojo = new Pojo(); Je suis sûr que lorsque vous avez posé la question ici à SO à ce moment-là, vous n'avez pas réalisé cette erreur stupide là.