Zum Inhalt springen

Name einer privaten Variablen zur Laufzeit ermitteln


Empfohlene Beiträge

Geschrieben

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;

		}


	}


}

Geschrieben

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...

Geschrieben
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

Geschrieben

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...

Geschrieben
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...
Geschrieben

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.

Geschrieben
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 besten
Tja, wer fand das nicht...

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...