# Casten



## Windows10 (3. Jun 2016)

String auf ein Enum (Enumirationstyp) casten, wie geht das?


----------



## Enceladus271 (3. Jun 2016)

Das geht gar nicht. Man kann die Instanz einer Klasse K nur zu einem Typ casten der eine Superklasse von K ist oder zu einem Interface welches K implementiert.

Vielleicht meinst du etwas anderes. Du kannst zu einem String das entsprechende Enum Element ermitteln:

```
enum MyEnum {
     FOO, BAR
   }

   public static void main(String[] args) {
     MyEnum result = MyEnum.valueOf("FOO");
     System.out.println(result == MyEnum.FOO);
   }
```


----------



## Windows10 (3. Jun 2016)

Hab schon einen Fehler gefunden und korrigiert, leider ist ein anderer aufgetreten!! Siehe dieses neue Problem: http://www.java-forum.org/thema/enumirationstypen-array.173316/


----------



## Windows10 (4. Jun 2016)

Enceladus271 hat gesagt.:


> Das geht gar nicht. Man kann die Instanz einer Klasse K nur zu einem Typ casten der eine Superklasse von K ist oder zu einem Interface welches K implementiert.
> 
> Vielleicht meinst du etwas anderes. Du kannst zu einem String das entsprechende Enum Element ermitteln:
> 
> ...


Wie kann man aber, um bei deinem Beispiel-Code zu bleiben ein enum-Array mit FOO und BAR füllen?


----------



## tommysenf (4. Jun 2016)

```
myenumarray[i] = MyEnum.valueOf("FOO");
```


----------



## T_T (5. Jun 2016)

Meinst du das so?:


```
public enum Strings {
        ENUM_I("Irgendein Text"),
        ENUM_W("Ein anderer Text"),

        final String text;
       
        private Strings(final String text) {
            this.text = text;
        }
       
        @Override
        public String toString() {
            return text;
        }
    }
```


----------

