PL
Java enum valueOf małe / wielkie litery - czy ma to znaczenie gdy używam wartości enum?
1 answers
0 points
Czy wielkie / małe litery mają znaczenie kiedy używam metody enum valueOf()
?
Przykład:
xxxxxxxxxx
1
enum CODE_STATUS {
2
FETCHED,
3
SENT
4
}
Czy mogę użyć małych liter jak na przykład "sent" gdy używam:
xxxxxxxxxx
1
CODE_STATUS status = CODE_STATUS.valueOf("sent");
Czy musi być dokładne dopasowanie?
1 answer
0 points
Znalazłem rozwiązanie:
Niestety wymagane jest dokładne dopasowanie (przykład 1), jeśli nie, to rzuci nam wyjątek (przykład 2).
Przykład 1
xxxxxxxxxx
1
public class EnumValueOfExample1 {
2
3
enum CODE_STATUS {
4
FETCHED,
5
SENT
6
}
7
8
public static void main(String[] args) {
9
10
// ok przy dokładnym dopasowaniu liter z enum
11
CODE_STATUS status = CODE_STATUS.valueOf("SENT");
12
System.out.println(status);
13
}
14
}
Wynik:
xxxxxxxxxx
1
SENT
Przykład 2 - wyjątek
xxxxxxxxxx
1
public class EnumValueOfExample2 {
2
3
enum CODE_STATUS {
4
FETCHED,
5
SENT
6
}
7
8
public static void main(String[] args) {
9
10
// Exception in thread "main" java.lang.IllegalArgumentException:
11
// No enum constant
12
// examples.EnumValueOfExample.CODE_STATUS.sent
13
CODE_STATUS statusByLowercase = CODE_STATUS.valueOf("sent");
14
System.out.println(statusByLowercase);
15
}
16
}
xxxxxxxxxx
1
Exception in thread "main" java.lang.IllegalArgumentException:
2
No enum constant examples.EnumValueOfExample2.CODE_STATUS.sent
3
at java.lang.Enum.valueOf(Enum.java:238)
4
at examples.EnumValueOfExample2$CODE_STATUS.valueOf(EnumValueOfExample2.java:5)
5
at examples.EnumValueOfExample2.main(EnumValueOfExample2.java:15)
Referencje
0 commentsShow commentsAdd comment