Methodennamen aus Variablen zusammensetzen?

Reaver1988

Mitglied
Hi,

ich habe eine Frage. Ist es generell Möglich mit Java Methodennamen, die sich widerholen, aber im Namen nur an einer Stelle ende, per Variable in einer For- Schleife zu erzeugen/verwenden?
Folgende Problematik vor der ich stehe (möchte meinen Code gerne schlank halten):
Es gibt ein Array, dass mit folgenden Daten gefüllt ist:
1: GebDatPers1
NamePers1
2: GebDatPers2
NamePers2
3: GebDatPers3
NamePers3
.
.
.
9: GebDatPers9
NamePers9

Es kann 0-9 personen in diesem Array geben. Diese Werte aus den Arrays sollen in ein Formular eingetragen werden, wo entsprechende Felder vorhanden sind.
Ich hole mir aus dem Formular also die Felder:
getGebDat1()
getGebDat2()
getGebDat3()
.
.
.
getGebDat9()

&
getName1()
getName2()
getName3()
.
.
.
getName9()

Klar könnte ich jetzt 9 Abfragen machen wenn ich das Array durchlaufe, aber bevor ich das mache, würde ich gerne wissen, ob ich Methodennamen dynamisch "generieren" kann? Mit Variablen geht es ja, indem man diese in ein Array packt und dann das Array anspricht. Ich habe das so mit der Methode probiert und wie zu erwarten war klappt es nicht


Java:
private void vorbelegPerson() {

        PERS_GEB[] persGeb = new PERS_GEB[9];
        persGeb = irgendwoher.getPERS_GEB();//Array in dem alles drinnen steht
        String[] PersGebdat = new String[9];
        for (int i = 0; i < PersGebdat.length; i++) {
            PersGebdat[i] = "getPersGebdat" + i;
        }
        String[] persName = new String[9];
        for (int i = 0; i < persName.length; i++) {
            persName[i] = "getPersName" + i;
        }
        for (int i = 0; i < persGeb.length; i++) {
            //Formular.getPersGebdat1.setValueAsString(persGeb[i].getPERS_GEB_DAT());
            Formular.persGebDat[i]().setValueAsString(persGeb[i].getPERS_GEB_DAT());
            //Formular.getPersName1.setValueAsString(persGeb[i].getPERS_NAME());
            Formular.persName[i]().setValueAsString(persGeb[i].getPERS_NAME());
        }
    }
Dort sieht man was ich gemacht habe und eventuell sieht man damit auch was ich vor habe. Ist dieses technisch irgendwie möglich?
Hoffe ich blamiere mich jetzt nicht total mit dieser Frage, aber ich denke soetwas wird man öfters brauchen können und bin zuversichtlich, dass es da eine Lösung des problemes gibt.
 

Reaver1988

Mitglied
Meinst du das so:
Java:
String[] PersGebdatFormular = new String[9];
       
            PersGebdatFormular[0] = Formular.getPersGebdatFeld1;
            PersGebdatFormular[1] = Formular.getPersGebdatFeld2;
            PersGebdatFormular[2] = Formular.getPersGebdatFeld3;
            PersGebdatFormular[3] = Formular.getPersGebdatFeld4;
            PersGebdatFormular[4] = Formular.getPersGebdatFeld5;
            PersGebdatFormular[5] = Formular.getPersGebdatFeld6;
            PersGebdatFormular[6] = Formular.getPersGebdatFeld7;
            PersGebdatFormular[7] = Formular.getPersGebdatFeld8;
            PersGebdatFormular[8] = Formular.getPersGebdatFeld9;

Oder habe ich dich da falsch verstanden? Das wäre dann der gleiche Aufwand, als wenn ich das direkt in den oben geposteten abschnitt reinschreibe. Aber ich gehe einfach davon aus, dass ich das falsch verstanden habe :)
 

tfa

Top Contributor
Ich meine, in der Formular-Klasse selbst hast du nicht 10 Variablen für die 10 Felder, sondern nur ein Array[10], in dem die Feld-Objekte abgespeichert sind. Dann könntest du einfach per Index auf jedes einzelne Feld zugreifen.
 

tfa

Top Contributor
Schade. Theoretisch könnte man Reflection benutzen, um Methodennamen "zusammenzubauen". Davon würde ich hier aber abraten. Schreib halt alle Methodenaufrufe von 0-9 aus. Du kannst dir auch eine Hilfsmethode [c]getGebDat(int ndex)[/c] definieren, die abhängig vom übergebenem Index die richtige Variable zurück liefert (switch-Statement).
 

Mujahiddin

Top Contributor
:autsch:
Seltsame Aufgabenstellung...
Ich denke, damit wirst du nicht weit kommen, soweit ich weiß, ist das nicht mal mit reflections möglich.
Besser wäre ein
Code:
getGebDat(int i)
aber wieso das nicht erlaubt sein soll, frag ich mich.

@tfa, wenn der Aufgabensteller schon so ne dumme Aufgabe stellt, kann man auch auf Reflections zugreifen.

Also um das klarzustellen:
Die Methoden musst du einzeln erstellen, das geht nicht mit Reflections (soweit ich weiß).
Aber deine Abfrage kannst du mit Reflections erheblich vereinfachen.
 

Mujahiddin

Top Contributor
Also wie gesagt, Reflections machen so einiges möglich. Änderungen am Code wirken sich dann natürlich fatal aus und der alte Zustand ist, wenn man unvorsichtig ist, nicht reproduzierbar... Also mit Vorsicht genießen!

Java:
import java.lang.reflect.Method;


public class A {
	
	public static void main(String... arg) throws Exception {
		A a = new A();
		String methodPrefix = "do";
		Method[] methods = A.class.getDeclaredMethods();
		for( Method m : methods ) {
			if( m.getName().startsWith( methodPrefix ) ) {
				// do something with Method!
				m.invoke( a );
			}
		}
	}
	
	public void do1() {
		System.out.println( "One" );
	}
	
	public void do2() {
		System.out.println( "Two" );
	}
	
	public void do3() {
		System.out.println( "Three" );
	}
}
 

Reaver1988

Mitglied
Ich glaube das ist dann doch etwas heikel. Werde ersteinmal die Teile einzeln ausschreiben(sind ja insgesamt auch nur knappe 80 zeilen, für eigentlich fast garnichts ^^) und dann den Vorschlag machen die Felder in der Formularklasse in ein Array zu packen, damit man damit arbeiten kann.
 

Reaver1988

Mitglied
Eine kurze Zwischenfrage, wie kann ich überprüfen, ob ein Feld in einem Array vorhanden ist?
In dem oben genannten Array können immer unterschiedliche Informationen stehen. Wenn z.B. ein Name übergeben wurde(aus den Schritten die vorher passiert sind), dann steht er drinnen und kann mit getName geholt werden, hat man in den Schritten vorher keinen namen angegeben, so steht auch kein feld mit namen(auch nicht leer!) in dem array und das getName erzeugt ein Nullpointer (logisch, da ist ja auch nichts). Wie fange ich solche Fälle ab?

€: ich habe eine passend(selbstgeschriebene) methode zum überprüfen gefunden :)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Methodennamen zur Laufzeit ausgeben Java Basics - Anfänger-Themen 5
A methodennamen zur laufzeit ausgeben Java Basics - Anfänger-Themen 3
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
T Variablen Java Basics - Anfänger-Themen 1
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
M Aufsummieren von variablen Wertegrößen Java Basics - Anfänger-Themen 17
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
Arif Vererbung Methodenvererbung mit finalen Variablen Java Basics - Anfänger-Themen 1
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
M Java Instanz-Variablen ? Java Basics - Anfänger-Themen 3
B Variablen von Methoden übertragen Java Basics - Anfänger-Themen 2
M Variablen umbenennen Java Basics - Anfänger-Themen 1
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
M Komisches Verhalten der Variablen Java Basics - Anfänger-Themen 6
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
scratchy1 Variablen vertauschen wenn Bedingung "umgedreht" wird Java Basics - Anfänger-Themen 40
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
A Übergreifende Variablen Java Basics - Anfänger-Themen 17
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
H Variablen Methode zum Abfragen von Variablen aus Subklassen Java Basics - Anfänger-Themen 9
P Variablen Variablen voneinander abhängig Java Basics - Anfänger-Themen 54
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
L Variablen in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
J Klassen Variablen in andere Klassen oder Methoden übernehmen Java Basics - Anfänger-Themen 1
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
temi Redundante Variablen Java Basics - Anfänger-Themen 29
Aprendiendo Zweifel mit versteckter Variablen Java Basics - Anfänger-Themen 16
L Variablen einmal nur zu weisen Java Basics - Anfänger-Themen 62
D Statische Variablen/Methoden Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
S Vererbung Variablen klassenübergreifend nutzen Java Basics - Anfänger-Themen 42
R Auf Variablen einer anderen Klasse zugreifen? Java Basics - Anfänger-Themen 1
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
Aruetiise Variablen JFrame und Variablen Java Basics - Anfänger-Themen 3
L Variablen dekleration + reset Java Basics - Anfänger-Themen 16
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
P Interface Variablen-Inhalte werden nicht übergeben Java Basics - Anfänger-Themen 3
C Variablen in Schleifen außerhalb verwenden Java Basics - Anfänger-Themen 2
S Variablen Flexible Variablen Namen Java Basics - Anfänger-Themen 3
R Erste Schritte 3 Variablen hochzählen lassen Java Basics - Anfänger-Themen 1
RowdyN Variablen Variablen beliebig benennen? Java Basics - Anfänger-Themen 6
S OOP Variablen zwischen mehreren Klassen Java Basics - Anfänger-Themen 11
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
H Variablen einer Schleife zwischenspeichern Java Basics - Anfänger-Themen 2
P Klassen Variablen von einer Klasse zur anderen Java Basics - Anfänger-Themen 5
H Objekt überschreibt Variablen vorheriger Objekte Java Basics - Anfänger-Themen 2
P Variablen in Excel speichern Java Basics - Anfänger-Themen 6
S PHP Aufruf mit mehreren Variablen Java Basics - Anfänger-Themen 2
F Variablen unterschiedlicher Datentypen Java Basics - Anfänger-Themen 6
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
L Vergleich zweier Variablen, mit Abweichung Java Basics - Anfänger-Themen 3
P Variablen einer Methode in andere Method übergeben Java Basics - Anfänger-Themen 6
G Variablen Verwendung von Variablen in anderer Klasse Java Basics - Anfänger-Themen 6
P Textfelder in Variablen speichern Java Basics - Anfänger-Themen 13
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
J Vererbung Variablen aus Superklasse übernehmen Java Basics - Anfänger-Themen 2
L Variablen aus TXT Datei auslesen und vergleichen. Java Basics - Anfänger-Themen 5
K Welchen Typ haben Variablen in Default-Methoden und in statischen Methoden in Schnittstellen? Java Basics - Anfänger-Themen 4
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
L zwei Variablen gleichzeitig übergeben Java Basics - Anfänger-Themen 6
J Vererbung privater Variablen Java Basics - Anfänger-Themen 7
D Klassen Verhalten von Klassenvererbung bei Variablen Java Basics - Anfänger-Themen 1
G Alle Objekte und Variablen automatisch ausgeben Java Basics - Anfänger-Themen 7
S OOP Werte von Vektoren mit 3 Variablen ausgeben lassen Java Basics - Anfänger-Themen 3
A Variablen aus einer Schleife gezielt auslesen Java Basics - Anfänger-Themen 11
A Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste) Java Basics - Anfänger-Themen 4
K Enigma, variablen übernehmen Java Basics - Anfänger-Themen 6
F Erste Schritte Dynamische Variablen Java Basics - Anfänger-Themen 15
N Variablen zurück casten Java Basics - Anfänger-Themen 3
M Repräsentation von variablen/OOP Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben