# enum Index Zugriff



## JavaBeginner2 (4. Mrz 2006)

Hallo ich habe gleich noch eine Frage zu enums. Ich möchte auf ein Enum über den Index zugreifen. Wie macht man das. 


```
package enums;

public enum EFarbe {
	
	GRUEN(1),//Das ist mein "Index"
	GELB(2),
	ROT(3);
	
	private int farbe;
	
	EFarbe(int farbe){
		this.farbe=farbe;
	}
	
	public int getFarbe(){
		return farbe;	
	}

}

EFarbe meineFarbe = EFarbe.GRUEN;
EFarbe meineFarbe = EFarbe(1);// das geht nicht.
// Ich will dann das das enum intern auf GRUEN "springt".
// Soweit ich weiß ging das doch immer in C++ oder nicht?
```
Wie macht man das?

Vieln Dank und Schöne Grüße

JavaBeginner2


----------



## Beni (4. Mrz 2006)

Du kannst zwar den Wert von "farbe" ändern, aber das Enum selbst bleibt. Ich denke, du willst ein Enum anhand seines Indexes auswählen? Das kann man z.B. mit einer statischen Methode "get" machen:

```
public class Test{
    private static enum EFarbe{
        GRÜN(1), ROT(2), BLAU(3);
        
        private int value;
        
        private EFarbe( int value ){
            this.value = value;
        }
        
        public int getValue() {
            return value;
        }
        
        public void setValue( int value ) {
            this.value = value;
        }
        
        public static EFarbe get( int value ){
            for( EFarbe farbe : EFarbe.values() )
                if( farbe.value == value )
                    return farbe;
            
            throw new IllegalArgumentException( "Unknown value: " + value );
        }
        
        @Override
        public String toString() {
            return super.toString() + " [value=" + value + "]";
        }
    }
    
    public static void main( String[] args ) {
        EFarbe test = EFarbe.get( 1 );
        System.out.println( test );
        
        test.setValue( 3 ); // es gibt nur ein GRÜN, diese Methode kann also üble Nebeneffekte haben...
        System.out.println( test );
    }
}
```


----------



## bygones (4. Mrz 2006)

mir stellt sich vor allem die frage nach dem sinn ? 

btw: Enums haben durch die methode ordinal schon eine inidzierung


----------



## Guest (4. Mrz 2006)

Hi

es ist so ich habe eine Zahl und die will ich jetzt in ein entsprechendes enum umwandeln. Dabei muss die Zahl nicht unbedingt der ordinalzahl des Enums entsprechen. Also 1 suche Farbe gib GRÜEN aus.


Schöne Grüße.....


----------

