java.lang.IllegalArgumentException: Pas enum const classe
- Je utiliser JAXB 2 pour parser un fichier XML à l'encontre d'un schéma XSD et XML, les balises sont automatiquement unmarshalled pendant ant à des classes Java. Certains enums
sont créés. Le code est:
@XmlType(name = "binQuality")
@XmlEnum
public enum BinQuality {
GOOD,
BAD,
UGLY,
NULL;
public String value() {
return name();
}
public static BinQuality fromValue(String v) {
return valueOf(v);
}
}
Dans mon code j'appelle:
BinQuality bq = BinQuality.valueOf(him.getToBinQuality());
dans une boucle et je reçois la seule exception à la 91e itération.
******* Mise à JOUR *******
him.getToBinQuality()
ne retour valide enum (BON/MAUVAIS/LAID/NULL). Ci-dessous est un extrait de journaux.
....
2011-07-18 15:28:09 DEBUG (com.st.mas.wmr.persistence.process.ProcessStifOliBinConversionCompleteImpl:183) -> class com.st.mas.wmr.persistence.process.ProcessStifOliBinConversionCompleteImpl|exportToXml|him.getToBin():89|him.getToBinQuality():BAD
2011-07-18 15:28:09 DEBUG (com.st.mas.wmr.persistence.process.ProcessStifOliBinConversionCompleteImpl:183) -> class com.st.mas.wmr.persistence.process.ProcessStifOliBinConversionCompleteImpl|exportToXml|him.getToBin():90|him.getToBinQuality():UGLY
2011-07-18 15:28:09 DEBUG (com.st.mas.wmr.persistence.process.ProcessStifOliBinConversionCompleteImpl:183) -> class com.st.mas.wmr.persistence.process.ProcessStifOliBinConversionCompleteImpl|exportToXml|him.getToBin():91|him.getToBinQuality():BAD
2011-07-18 15:28:09 WARN (org.apache.struts.action.RequestProcessor:538) -> Unhandled Exception thrown: class java.lang.IllegalArgumentException
Cela semble vraiment mystérieux.
Version de Java utilisée est de 1,5.
L'apprécier.
Sera
Et quelle est la valeur de
Trouvé. il y a une fuite de l'espace dans la 91e données. 🙂
him
dans la 91e itération?Trouvé. il y a une fuite de l'espace dans la 91e données. 🙂
OriginalL'auteur Will Sumekar | 2011-07-18
Vous devez vous connecter pour publier un commentaire.
C'est parce qu'aucune valeur d'énumération pourrait être trouvée pour votre 91th entrée. Quelle est la valeur de l'échec de la Chaîne?
OriginalL'auteur Kai
Soit votre XML n'est pas valide valeur d'ENUM (comme 'bon' en minuscules), ou a une balise vide, parce que si vous essayez d'eval une enum élément via
MyEnum.valueOf(null)
qu'il va jeter une IllegalArgumentException.null
,valueof
va jeterNullPointerException
OriginalL'auteur everton
Plus probablement, c'est parce que
him.getToBinQuality()
ne retourne pas la validité de la chaîne qui est dans ce cas-Chaîne doit être'GOOD|BAD|UGLY|NULL'
Vous pouvez résoudre facilement ce par l'impression de la valeur sur le journal.
OriginalL'auteur Talha Ahmed Khan