Convertire uno String in Enum in Java
Il problema che andiamo ad affrontare oggi è questo: come convertire un oggetto String in un oggetto Enum in Java?
In sostanza abbiamo un Enum del genere, e vogliamo tirare fuori l'indirizzo di una specifica voce:
public enum Whois {
ARIN("whois.arin.net"),
RIPE("whois.ripe.net"),
APNIC("whois.apnic.net"),
AFRINIC("whois.afrinic.net"),
LACNIC("whois.lacnic.net"),
JPNIC("whois.nic.ad.jp"),
KRNIC("whois.nic.or.kr"),
CNNIC("ipwhois.cnnic.cn"),
UNKNOWN("");
private String address;
Whois(String address) {
this.address = address;
}
public String getAddress() {
return address;
}
}
Prima di tutto, ricordate che per avere delle voci cosi strutturate, è obbligatorio avere il costruttore che prende un valore in input; può anche essere private, ma per capire meglio provate a levarlo per vedere gli errori.
Detto ciò, vediamo come eseguire l'operazione che ci serve:
public class Main {
public static void main(String[] args) {
Whois rir = Whois.valueOf("ARIN");
System.out.println(rir + ":" + rir.getAddress());
}
}
Abbiamo usato il metodo valueOf, passandogli il nome della voce che ci interessa.
Sotto stampiamo il nome e il valore della voce.
Enjoy!
java string enum valueof
Commentami!