2010-12-17 7 views
8

Bit einer seltsamen Anforderung. Jetztalle statischen Variablen in einer Klasse in Array/Liste erhalten

public class DummyClass{ 
    public static final DummyClass var1; 
    public static final DummyClass var2; 
    public static final DummyClass var3; 
    . 
    . 
    . 
    public static final DummyClass var100; 
} 

von außerhalb dieser Klasse können wir bündeln diese VARs in einem einzigen Array oder eine Liste, so dass ich über sie laufen kann? Wie, wenn ich etwas tun, wie

List<DummyClass> dummyList = *some op*; //I want value of some op. 

ich in der Lage sein sollte var1 zugreifen ... var100

+0

Ich kann nicht die Quelle der DummyClass ändern. – Chandra

+1

Ich würde mit Reflektion arbeiten. – Robert

+0

Kannst du es zum Enum machen? –

Antwort

26

Sie Reflexion verwenden:

Field[] fields = DummyClass.class.getDeclaredFields(); 
for (Field f : fields) { 
    if (Modifier.isStatic(f.getModifiers()) && isRightName(f.getName())) { 
     doWhatever(f); 
    } 
} 
+0

Das funktioniert für mich, danke :) – Chandra

+1

@Chandra Bitte markieren Sie eine Antwort richtig, wenn Sie die richtige Lösung denken –

+0

@Cameron Ich finde keine IsRghtName() -Methode in der Modifier-Klasse. –

Verwandte Themen