Wie konvertiert man Zeichenketten in Enum in Java?
In meinem Java-Programm haben, Enum-Klasse wie..
public enum DemoType{
DAILY, WEEKLY, MONTHLY;
}
Und in meiner jsp nehme ich die Werte aus Benutzer-wie select-Feld und diese Jsp aufgerufen, wie DemoJspBean
..
<form:select path="repeatWeektype">
<form:option value="DAILY" />
<form:option value="WEEKLY" />
<form:option value="MONTHLY" />
</form:select>
Meine HibernateVO Klasse ist ..
public class DemoVO{
@Column(name = "REPEAT_TYPE")
@Enumerated(EnumType.STRING)
private RepeatType repeatType;
}
Nun möchte ich diesen Wert einfügen in die DB über Hibernate Bean(setter und getter)
DemoVO demo = new DemoVO();
demo.setRepeatType(demoJspBean.getRepeatWeektype());
aber es zeigt Fehler..
So, wie meine konvertieren String-Wert in enum-Klasse geben?
Kommentar zu dem Problem - Öffnen
mögliche Duplikate von Java - Konvertieren von String zu enum
InformationsquelleAutor der Frage java | 2013-07-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
valueOf
Methode auf dieEnum
Klasse.Es werfe ein
IllegalArgumentException
sollte das string-argument zur Verfügung gestellt werden ungültig. Mit Ihrem BeispielZeile oben wirft einen
IllegalArgumentException
weilHOURLY
ist nicht Teil desDemoType
InformationsquelleAutor der Antwort kolossus
Diese kann Ihnen helfen, zu verstehen, wie
enum
Typen arbeiten.Sagen, Das ist mein
enum
Klasse.Folgenden wird gezeigt, wie meine
enum
funktioniertInformationsquelleAutor der Antwort Ruchira Gayan Ranaweera
Wenn aus irgendeinem Grund Sie verwenden einen Wert, der nicht vorhanden ist in der enum (mit der Methode
DemoType.valueOf()
erhalten Sie einejava.lang.IllegalArgumentException
. Hey! Warten! Sie können Durchlaufen, in der Werte:Die Ausgabe:
InformationsquelleAutor der Antwort Paul Vargas
Verwendung von Spring TypeConverterSupport können Sie lösen, string-Eigenschaft, um enum-Instanz so:
InformationsquelleAutor der Antwort Łukasz Chorąży
Können Sie Benutzer DemoType.valueOf () - Methode übergeben Sie die Zeichenfolge, die konvertiert es in der DemoType enum entsprechend der string. Stellen Sie sicher, dass der String-Wert ist der gleiche wie enum deklariert. Zum Beispiel
InformationsquelleAutor der Antwort ashoka