Si potrebbe fare qualcosa di simile:
import java.lang.reflect.*;
public class Foo {
public static int one = 1;
public static int two = 2;
public static int three = 3;
public static void magicMethod(Class clz) throws Exception {
Field[] fields = clz.getFields();
System.out.println(""+fields);
for(Field field : fields) {
int modifiers = field.getModifiers();
if(! Modifier.isStatic(modifiers))
continue;
System.out.println("" + field.get(null));
}
}
public static void main(String[] args) throws Exception {
Foo.magicMethod(Foo.class);
}}
E 'importante notare, tuttavia, che i campi devono essere pubblico per far funzionare tutto questo. Non è esattamente quello che hai chiesto, ma dovrebbe essere abbastanza vicino da poter essere in grado di farlo funzionare per quello che ti serve. Ovviamente questo non comporta alcun tipo di gestione degli errori o altro, quindi è necessario assicurarsi di gestire eventuali errori o eccezioni nella propria applicazione reale.
fonte
2008-11-07 03:13:01
troppe domande sembrano come i compiti ... –