Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Name einer privaten Variablen zur Laufzeit ermitteln

Empfohlene Antworten

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;

		}


	}


}

  • Autor

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

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

  • Autor

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

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

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.

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.