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 Field
instancia 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