Вы можете сделать что-то вроде этого:
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 );
}}
Важно отметить, однако, что поля должны быть открытыми, чтобы это работало. Это не совсем то, что вы просили, но оно должно быть достаточно близко, чтобы вы могли заставить его работать на то, что вам нужно. Очевидно, что это не делает никакой обработки ошибок или чего-либо еще, поэтому вы должны убедиться, что вы обрабатываете любые ошибки или исключения в вашем реальном приложении.