Je sais que les chaînes de Java doivent être comparées en utilisant .equals()
et sans utiliser l'opérateur ==
.Comparaison de chaînes dans Java 6 vs Java 7
Mais dans le ci-dessous le code il y a une primaryObserverId
qui a une valeur de ""
Le ci-dessous if
état fonctionne bien sur Java 6, mais échoue sur Java 7
String primaryObserverId = request.getParameter("primary_observer_id");
if(primaryObserverId == null || primaryObserverId=="")
primaryObserverId = RoleMap.getUserIdForThisSession(session.getId());
besoin de savoir pourquoi ce code fonctionnait sur Java 6 et pas sur Java 7.
Je sais comment le concept de String Pool fonctionne pour les littéraux de chaîne dans Java, je veux juste connaître la raison de ce comportement abrupt.
peut utiliser la version différente de GlassFish peut causer un problème que j'utilise GlassFish-2.1 avec Java 6 et GlassFish-4.1 avec Java 7
Autre chose. PAS de changement avec la version. –
Etes-vous sûr que vous obtenez "" dans Java 6 et 7? – Joker
Sur Java 6, c'était juste de la chance: les littéraux sont "mis en cache" et "" == "" fonctionne mais la nouvelle chaîne ("") == "" ne fonctionne pas. – Mikey