Ich habe folgende Klasse:
public class Test {
public static int a = 0;
public int b = 1;
}
Ist es möglich, mithilfe der Reflexion nur eine Liste der statischen Felder abzurufen? Ich bin mir bewusst, dass ich mit allen Feldern ein Array erhalten kann Test.class.getDeclaredFields()
. Es scheint jedoch nicht möglich zu sein, festzustellen, ob eine Field
Instanz ein statisches Feld darstellt oder nicht.
java
reflection
static
field
Anders
quelle
quelle
Antworten:
Sie können es so machen:
quelle
Ich bin zufällig auf diese Frage gestoßen und hatte das Gefühl, dass ein Java 8-Update mit Streams erforderlich ist:
Offensichtlich ist dieses Beispiel für die Lesbarkeit etwas verschönert. In der Tat würden Sie es wahrscheinlich so schreiben:
quelle
Wenn Sie Ihrem Projekt Open-Source-Abhängigkeiten hinzufügen können, können Sie auch FieldUtils.readDeclaredStaticField (Test.class, "a") verwenden.
quelle
Das ist einfach: Mit dem Modifikator können Sie überprüfen, ob ein Feld statisch ist oder nicht. Hier ist ein Beispielcode für diese Art von Aufgabe.
quelle