J'ai la classe suivante:
public class Test {
public static int a = 0;
public int b = 1;
}
Est-il possible d'utiliser la réflexion pour obtenir une liste des champs statiques uniquement? Je suis conscient que je peux obtenir un tableau de tous les champs avec Test.class.getDeclaredFields()
. Mais il semble qu'il n'y ait aucun moyen de déterminer si une Field
instance représente un champ statique ou non.
java
reflection
static
field
Anders
la source
la source
Réponses:
Vous pouvez le faire comme ceci:
la source
Je suis tombé sur cette question par accident et j'ai senti qu'il fallait une mise à jour Java 8 à l'aide de flux:
De toute évidence, cet échantillon est un peu embelli pour la lisibilité. En fait, vous l'écririez probablement comme ceci:
la source
Si vous pouvez ajouter des dépendances open source à votre projet, vous pouvez également utiliser FieldUtils.readDeclaredStaticField (Test.class, "a")
la source
C'est simple, vous pouvez utiliser Modifier pour vérifier si un champ est statique ou non. Voici un exemple de code pour ce type de tâche.
la source