Я случайно наткнулся на этот вопрос и почувствовал, что нужно обновление Java 8 с использованием потоков:
public static List<Field> getStatics(Class<?> clazz) {
List<Field> result;
result = Arrays.stream(clazz.getDeclaredFields())
// filter out the non-static fields
.filter(f -> Modifier.isStatic(f.getModifiers()))
// collect to list
.collect(toList());
return result;
}
Очевидно, что этот образец немного украшен для удобства чтения. На самом деле, вы, вероятно, написали бы это так:
public static List<Field> getStatics(Class<?> clazz) {
return Arrays.stream(clazz.getDeclaredFields()).filter(f ->
Modifier.isStatic(f.getModifiers())).collect(toList());
}