recherche

Maison  >  Questions et réponses  >  le corps du texte

java - Pourquoi les variables membres de l'interface ne sont-elles pas des constantes?

switch (from) {
            case TAGs.casts://constant expression required
                break;
        }
        
//我的TAGs.casts是这样的
public interface TAGs {
    String casts = String.class.getSimpleName();
}

//如果写成这个样子就可以编译
public interface TAGs {
    String casts = "String";
}

N'est-il pas dit que les variables membres de l'interface sont toutes des constantes ? Pourquoi ne puis-je pas utiliser l'invite pour exiger des constantes sur le cas ?

phpcn_u1582phpcn_u15822711 Il y a quelques jours833

répondre à tous(4)je répondrai

  • 滿天的星座

    滿天的星座2017-06-23 09:15:11

    Lorsque vous utilisez une interface, vous devez attribuer une valeur initiale à la constante. Si vous l'écrivez vous-même sans donner de valeur initiale, elle doit être fausse.

    répondre
    0
  • 習慣沉默

    習慣沉默2017-06-23 09:15:11

    Le cas dans switch doit déterminer la valeur au moment de la compilation, et String.class.getSimpleName(); doit être connu au moment de l'exécution (bien qu'il s'agisse effectivement d'une constante au moment de l'exécution), donc la compilation ne peut pas réussir

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-23 09:15:11

    En effet. L’un est requis au moment de la compilation et l’autre est au moment de l’exécution (les méthodes de réflexion sont toutes au moment de l’exécution). J'ai déjà mal répondu - lorsque j'ai regardé Java efficace, il a été modifié par static final. Il contient également une suggestion, veuillez utiliser la classe d'énumération pour exporter des constantes.

    répondre
    0
  • 大家讲道理

    大家讲道理2017-06-23 09:15:11

    不是说接口中的成员变量都是常量吗请问这句话从哪里听来的?
    常量需要使用static finalModification, et la valeur initiale doit être donnée

    répondre
    0
  • Annulerrépondre