Tengo una clase y quiero encontrar todos sus campos públicos (no métodos). ¿Cómo puedo hacer esto?
¡Gracias!
                    
                        java
                                reflection
                                
                    
                    
                        ufk
fuente
                
                fuente

Respuestas:
devuelve una matriz de todas las variables públicas de la clase.
getFields()devuelve los campos en toda la jerarquía de clases. Si desea tener los campos definidos solo en la clase en cuestión, y no en sus superclases, usegetDeclaredFields()y filtre lospublicque tienen el siguienteModifierenfoque:El
YourClassName.classliteral realmente representa un objeto de tipojava.lang.Class. Consulte sus documentos para conocer métodos de reflexión más interesantes.La
Fieldclase anterior esjava.lang.reflect.Field. Puede echar un vistazo aljava.lang.reflectpaquete completo .fuente
https://docs.oracle.com/javase/tutorial/reflect/class/classMembers.html también tiene gráficos para localizar métodos y constructores.
fuente
Puede utilizar cualquiera de los dos según sus necesidades:
Para filtrar solo los campos públicos de la lista anterior (según el requisito), use el siguiente código:
fuente
Como lo mencionaron algunos usuarios, el siguiente código puede ayudar a encontrar todos los campos en una clase determinada.
Sin embargo, a continuación se muestra un enfoque más interesante:
Con la ayuda de la biblioteca de Jackson, pude encontrar todas las propiedades de clase de tipo String / integer / double y los valores respectivos en una clase Map. (¡ sin usar reflections api! )
fuente