dernière variable de cas dans l'instruction switch

        final int a = 1;
        final int b;
        b = 2;
        final int x = 0;

        switch (x) {
            case a:break;     //ok
            case b:break;     //compiler error: Constant expression required

        }
        /* COMPILER RESULT:
                constant expression required
                case b:break;
                     ^
                1 error
        */

Pourquoi suis-je obtenir ce genre d'erreur? Si je l'aurais fait final int b = 2, tout fonctionne.

  • définir comme final int b; rendra comme variable.
  • donc avant de vous init il a la valeur null
  • et enfin, il initialisée, pourquoi ce commutateur expression qui n'accepte pas les variables?
  • à l'aide d'un commutateur équivalent à if - else, ce n'est pas une bonne utilisation de la carte au lieu de cela, il a accepté de n'importe quel Objet comme une clé.
  • Romain, de quoi parles-tu? 🙂
  • êtes-vous sûr de commenter la bonne question? Une simple demande.
  • Les erreurs de compilation sont la partie de la question...

InformationsquelleAutor Furlando | 2013-04-27