Tengo la siguiente clase:
public class Test {
public static int a = 0;
public int b = 1;
}
¿Es posible usar la reflexión para obtener solo una lista de los campos estáticos? Soy consciente de que puedo obtener una matriz de todos los campos con Test.class.getDeclaredFields(). Pero parece que no hay forma de determinar si una Fieldinstancia representa un campo estático o no.
java
reflection
static
field
Anders
fuente
fuente

Respuestas:
Puedes hacerlo así:
fuente
Me topé con esta pregunta por accidente y sentí que necesitaba una actualización de Java 8 usando streams:
Obviamente, esa muestra está un poco adornada para facilitar la lectura. En realidad, probablemente lo escribirías así:
fuente
Si puede agregar dependencias de código abierto a su proyecto, también puede usar FieldUtils.readDeclaredStaticField (Test.class, "a")
fuente
Eso es simple, puede usar Modificador para verificar si un campo es estático o no. Aquí hay un código de muestra para ese tipo de tarea.
fuente