mkScheller Geschrieben 14. Oktober 2008 Geschrieben 14. Oktober 2008 Hallo, gibt es eine Möglichkeit, den Namen einer privaten Variablen zur Laufzeit per reflections zu ermitteln? Zitieren
Schiller256 Geschrieben 14. Oktober 2008 Geschrieben 14. Oktober 2008 Ja! Auch wenn du nicht danach gefragt hast hier mal ein kleines Beispiel. import java.lang.reflect.Field; import java.lang.reflect.Modifier; public class ReflectionTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Class clazz = PoJo.class; for (Field field : clazz.getDeclaredFields()) { System.out.print("FieldName: " + field.getName()); System.out.println(" - Modifiers private " + Modifier.isPrivate(field.getModifiers())); } } public class PoJo { private String attribut1; private int attribut2; public String getAttribut1() { return attribut1; } public void setAttribut1(String attribut1) { this.attribut1 = attribut1; } public int getAttribut2() { return attribut2; } public void setAttribut2(int attribut2) { this.attribut2 = attribut2; } } } Zitieren
mkScheller Geschrieben 16. Oktober 2008 Autor Geschrieben 16. Oktober 2008 OK, Danke erstmal. Allerdings stellt sich dies etwas schwieriger dar: Ich muss - durch die Implementierung eines Interfaces - entscheiden, ob ein Component ein bestimmter ist, nämlich der, der im Sourcecode die Variable jTextField1 repräsentiert. Das stellt sich jedoch etwas schwieriger dar, wenn gar überhaupt lösbar... Zitieren
perdian Geschrieben 16. Oktober 2008 Geschrieben 16. Oktober 2008 Ich muss - durch die Implementierung eines Interfaces - entscheiden, ob ein Component ein bestimmter ist, nämlich der, der im Sourcecode die Variable jTextField1 repräsentiert.Diese Lösung riecht nach einem verdammt schlechten Design. Wenn du Komponenten voneinander unterscheiden willst, dann gib ihnen entsprechende Attribute mit, die du dann (nebenbei auch viel einfacher) zur Laufzeit abfragen kannst. Spontan fallen mir da ein: Component (Java Platform SE 6) - getName und Component (Java Platform SE 6) - setName Zitieren
mkScheller Geschrieben 16. Oktober 2008 Autor Geschrieben 16. Oktober 2008 OK, das über das name-Attribut der Component-Klasse zu realisieren ist natürlich der Weg den ich auch eingeschlagen hatte. Allerdings gefällt mir das nicht, weil dann andere Entwickler entsprechend dieses Attribut immer vergeben müssen...automatisches GUI-testen... Zitieren
perdian Geschrieben 16. Oktober 2008 Geschrieben 16. Oktober 2008 Allerdings gefällt mir das nicht, weil dann andere Entwickler entsprechend dieses Attribut immer vergeben müssen...Wenn du dich von Namen im Quelltext abhängig machst ist unter Umständen bei gutem Refactoring alles hinüber. Von Obfuscation mal ganz zu schweigen... Zitieren
mkScheller Geschrieben 16. Oktober 2008 Autor Geschrieben 16. Oktober 2008 Es gibt wohl nie ne endgültige, einzig-wahre Lösung zur implementierung von irgendetwas. Das finde ich sehr störend. Generell fand ich die Grundschule am besten: Da war 1+1=2 und nicht irgendwie 1+1=(1,0)+(1,0)=(2,0) im - am besten immernoch - n-dimensionalen Vektorraum. Zitieren
perdian Geschrieben 18. Oktober 2008 Geschrieben 18. Oktober 2008 Es gibt wohl nie ne endgültige, einzig-wahre Lösung zur implementierung von irgendetwas.Das liegt in der Natur der Sache. Software-Entwicklung ist eben bis zu einem gewissen Grad auch eine Kunst. Und genauso wenig wie ist den richtigen Weg gibt einen Sonnernuntergang im Bild festzuhalten gibt es auch nicht den richtigen Weg eine Software-Lösung zu implementieren. Es gibt bestimmte Wege und Methoden, die sich als besonders gut bzw. besonders schlecht bewahrheitet haben aber den heiligen Gral der Softwareentwicklung sucht man bis heute vergebens. Das finde ich sehr störend.Ich finde es auch sehr störend, dass wir momentan in Deutschland Temperaturen unterhalb der 30° haben. So what? Ändern kann ich es nicht also gilt es einen Weg zu finden damit zu leben. Beim Wetter ist das relativ einfach - Pullover und Jacke anziehen. Generell fand ich die Grundschule am bestenTja, wer fand das nicht... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.