Dynamisch durch alle Objektvariablen eines Objektes iteriere

Status
Nicht offen für weitere Antworten.

Cheefrocker

Bekanntes Mitglied
Hallo zusammen,

weiss einer wie ich dynamisch durch alle Objektvariablen vom Typ String iterieren kann wenn ich nicht weiss welche Variablen in diesem Objekt enthalten sind?


Code:
public class TestKlasse {

    //optionale Felder
    private String E1Hin1 = "";
    private String E1Hin2 = "";
    private String E1Hin3 = "";


   //methoden.........

}


Ich will wissen ob alle Variablen gesetzt sind und wenn eine nicht gesetzt ist, dann will ich wissen welche das ist.


Das ist hier nur ein Beispiel ich hab viel mehr Variablen. Will aber alle Pflichtfelder gesetzt haben bzw diese überprüfen. Will jetzt aber keine riesen geschachtelte Abfrage machen. Gibt es eine Möglichkeit dies umzusetzen. Macht diese Sinn?


Wie prüft ihr ob alle Variablen bzw Methoden gesetzt und ausgeführt wurden..


danke an euch!
 
S

SlaterB

Gast
daran siehst du, wie wenig Sinn es macht, soviele Variablen zu deklarieren,
mit Arrays/ Listen hast du weit weniger Probleme beim Durchlauf,


wenn du die gefragte Funktionalität nur zum Testen und nicht direkt im Programm brauchst,
dann ist es noch halbwegs vertretbar, dafür Reflection einzusetzen,
lies dich zu diesem Stichwort schlau, damit kann man alle Felder bekommen und den Typ sowie den Inhalt abfragen

------

im Programm selber besser mit normalen Code arbeiten,
etwas kürzer ist vielleicht
teste("var1",var1,"var2",var2,"var3",var3);
also alle benötigten Variablen einer Operation als Parameter zu übergeben und deren Namen dazu,

das kommt dann in einer Operation teste(String... strings) an (ohne Java 1.5 mit einem String-Array/ Liste arbeiten)
und kann dann per Schleife verarbeitet werden:
wenn String i null ist dann den zugehörigen Namen (steht direkt davor) in einer Fehlermeldung ausgeben
 

manuche

Bekanntes Mitglied
Du könntest dir eine Collection für den Typ Object erzeugen und da deine ganzen variablen reinpacken...
Dazu müssten Integer aber auch mit new Integer() erzeugt werden statt mit int... (soviel ich weiss)!
Dann kannst du einfach mit der for-each-schleife über deine Variablen in der Collection iterieren!
Was verstehst du in dem Zusammenhang mit dynamisch?
 
S

SlaterB

Gast
> Was verstehst du in dem Zusammenhang mit dynamisch?

man kann (sollte können) beliebige neue String-Variablen anlegen, ohne manuell den Test zu erweitern
 

Cheefrocker

Bekanntes Mitglied
danke dir @slater

Ich will ja eine Schnittstelle(Jar-File) für andere Entwickler erstellen die eine bestimmte Aktion durchführt. Damit die Aktion aber ausgeführt werdern kann müssen die PFlichtfelder gesetzt sein.

Mein Problem besteht zur Zeit darin, dass ich den Aufruf der Schnittstelle sperren muss wenn z.b in einer Anwendung bei einer bestimmten Konstellation ein Pflichtfeld nicht vorkommt.

Man kann sich das so vorstellen:Beim Starten der Gui-Anwendung wird die Schnittstelle instanziert. In einem Panel soll z.b beim Drücken eines Buttons die Schnittstelle aufgerufen werden. Die Daten werden doch jedoch nicht beim Drücken des Buttons vorgenommen sondern schon während des Programmlaufes. Der Button muss vor der Bedienung jedoch schon vorher deaktiviert werden wenn die Schnittstelle eh nicht augerufen werden kann.
Im Programmlauf kann der Entwickler die verschiedenen Methoden aufrufen.Ich muss jedoch auch sicherstellen das alle Methoden aufgerufen wurden.
 
L

lohr

Gast
Würde es an deiner Stelle mit String Arrays machen, diese dann zu durchlaufen ist dann ja fast schon ein kinderspiel ^^
 

Cheefrocker

Bekanntes Mitglied
lohr hat gesagt.:
Würde es an deiner Stelle mit String Arrays machen, diese dann zu durchlaufen ist dann ja fast schon ein kinderspiel ^^

Problem ist das ist dann alle so ansprechen müsste.
Code:
String[] liste = {};


liste [0]="1";

liste [1]="hinweis";


aber dann wüsste man nicht welche Variable z.b liste[12] ist.

Oder wie meinste das?
 

Cheefrocker

Bekanntes Mitglied
SlaterB hat gesagt.:
daran siehst du, wie wenig Sinn es macht, soviele Variablen zu deklarieren,
mit Arrays/ Listen hast du weit weniger Probleme beim Durchlauf,


wenn du die gefragte Funktionalität nur zum Testen und nicht direkt im Programm brauchst,
dann ist es noch halbwegs vertretbar, dafür Reflection einzusetzen,
lies dich zu diesem Stichwort schlau, damit kann man alle Felder bekommen und den Typ sowie den Inhalt abfragen

------

im Programm selber besser mit normalen Code arbeiten,
etwas kürzer ist vielleicht
teste("var1",var1,"var2",var2,"var3",var3);
also alle benötigten Variablen einer Operation als Parameter zu übergeben und deren Namen dazu,

das kommt dann in einer Operation teste(String... strings) an (ohne Java 1.5 mit einem String-Array/ Liste arbeiten)
und kann dann per Schleife verarbeitet werden:
wenn String i null ist dann den zugehörigen Namen (steht direkt davor) in einer Fehlermeldung ausgeben


Hab folgendes Probiert:

Code:
		public static void printFieldNames(Object o) {
			Class c = o.getClass();
			Field[] publicFields = c.getFields();
			for (int i = 0; i < publicFields.length; i++) {
				String fieldName = publicFields[i].getName();
				Class typeClass = publicFields[i].getType();
				String fieldType = typeClass.getName();
				System.out.println("Name: " + fieldName + ", Type: " + fieldType);
			}
		}

damit kann ich aber nur auf die Plubic-Variablen von der Schnittstelle zugreifen. Gibt es eine Möglichkeit auf die Private-Variablen zuzugreifen?
 

Niki

Top Contributor
statt getFields ruf getDeclaredFields auf, dann bekommst du auch die private Members. Mit setAccessible(true) kannst du auch darauf zugreifen.
 
S

SlaterB

Gast
> aber dann wüsste man nicht welche Variable z.b liste[12] ist.

deswegen ja bei dieser Variante abwechselnd die Namen + die Variablen-Inhalte in das Array schreiben
 
G

Guest

Gast
Cheefrocker hat gesagt.:
lohr hat gesagt.:
Würde es an deiner Stelle mit String Arrays machen, diese dann zu durchlaufen ist dann ja fast schon ein kinderspiel ^^

Problem ist das ist dann alle so ansprechen müsste.
Code:
String[] liste = {};


liste [0]="1";

liste [1]="hinweis";


aber dann wüsste man nicht welche Variable z.b liste[12] ist.

Oder wie meinste das?
Hm das hört sich für mich so an als ob eine Map hier genau das richtige wäre.
Schau dir mal java.util.Map an.
 
S

SlaterB

Gast
ach ja, natürlich, Map empfehle ich nun auch,

gibts auch in Java 1.4 ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
districon Dynamisch Programmierung/Backtracking/Memoization Java Basics - Anfänger-Themen 3
T Klassen Denkfehler im Klassen "dynamisch" instanzieren? Java Basics - Anfänger-Themen 4
J Verundung dynamisch gestalten Java Basics - Anfänger-Themen 21
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
D new arraylist (List) dynamisch erstellen Java Basics - Anfänger-Themen 1
B Klassen Klasse dynamisch laden. Java Basics - Anfänger-Themen 8
N Dynamisch erzeugtes Label wird nicht angezeigt, TextField schon Java Basics - Anfänger-Themen 1
D Koordinatensystem dynamisch anpassen Java Basics - Anfänger-Themen 17
J Tableview, ObservableList ein bisschen dynamisch Java Basics - Anfänger-Themen 6
C Array - Länge dynamisch übergeben Java Basics - Anfänger-Themen 7
D Erste Schritte Dynamisch Objekte erzeugen und diese durchsuchen Java Basics - Anfänger-Themen 7
GreyFox Object dynamisch mit werten versehen. Java Basics - Anfänger-Themen 4
G Array dynamisch ausgeben Java Basics - Anfänger-Themen 3
S JTable dynamisch mit Datenbankinhalten füllen Java Basics - Anfänger-Themen 6
F Erste Schritte If Bedingung in Schleife dynamisch erweitern Java Basics - Anfänger-Themen 4
K JLabel zur Laufzeit dynamisch erzeugen Java Basics - Anfänger-Themen 7
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
Y Eingabe-Formular mit JSP dynamisch machen - j/n/wie? Java Basics - Anfänger-Themen 2
N Dynamisch JTree erstellen Java Basics - Anfänger-Themen 3
R Objekte dynamisch erstellen? Java Basics - Anfänger-Themen 14
C Variablen Array dynamisch halten und ausrechnen Java Basics - Anfänger-Themen 14
N Ergebnisse dynamisch in Tabelle schreiben Java Basics - Anfänger-Themen 3
G JObjekte dynamisch vom Server erzeugen lassen Java Basics - Anfänger-Themen 4
I Dynamisch erzeugten Buttons Methoden zuweisen Java Basics - Anfänger-Themen 6
H Objekte dynamisch erzeugen? Java Basics - Anfänger-Themen 6
M Variablen dynamisch variableninhalt von Object auslesen Java Basics - Anfänger-Themen 4
S if-Block dynamisch aufbauen Java Basics - Anfänger-Themen 5
M Static Variable "dynamisch" aufrufen? Java Basics - Anfänger-Themen 8
B Klassen Objekte während der Laufzeit dynamisch anlegen Java Basics - Anfänger-Themen 8
A JButtons dynamisch generieren mit verschiedenen actionhandlern Java Basics - Anfänger-Themen 6
P Scrollpane mit dynamisch erzeugten Komponenten Java Basics - Anfänger-Themen 3
U JPanel dynamisch gestalten Java Basics - Anfänger-Themen 7
R Liste graphischer Objekte z.B. JButton dynamisch erstellen Java Basics - Anfänger-Themen 13
A Dynamisch die Anzahl der Threads in der Cyclic Barrier ändern Java Basics - Anfänger-Themen 2
K Datentypen Full qualified Name dynamisch gestalten Java Basics - Anfänger-Themen 7
M For-Schleifen dynamisch generieren? Java Basics - Anfänger-Themen 10
sqsh statische jlabels dynamisch verwalten Java Basics - Anfänger-Themen 2
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
L Tray-Einträge und dazu passende ActionListener dynamisch erzeugen? Java Basics - Anfänger-Themen 2
D JPanel dynamisch anpassen Java Basics - Anfänger-Themen 5
S Dialog dynamisch vergrößern Java Basics - Anfänger-Themen 2
S Dynamisch Zeit auslesen Java Basics - Anfänger-Themen 11
M JTextPane dynamisch erzeugen Java Basics - Anfänger-Themen 2
J Aufgaben Dynamisch auf Pool von Threads verteilen. Java Basics - Anfänger-Themen 3
D ArrayList dynamisch befüllen Java Basics - Anfänger-Themen 14
G Objekteigenschaften dynamisch erzeugen Java Basics - Anfänger-Themen 7
jnoob Checkbox in Dialog Dynamisch erstellen Java Basics - Anfänger-Themen 2
K suche nicht dynamisch Datenstruktur Java Basics - Anfänger-Themen 6
J ListModel dynamisch und schnell aber sicher ändern Java Basics - Anfänger-Themen 7
M Dynamisch Instanzen erstellen. Java Basics - Anfänger-Themen 4
G Zweidimensionales Array - dynamisch Java Basics - Anfänger-Themen 4
B arrays dynamisch vergrößern Java Basics - Anfänger-Themen 5
V Kundenklasse dynamisch erzeugen und id hochzählen? Java Basics - Anfänger-Themen 4
P JPanel dynamisch mit ActionListener verwalten Java Basics - Anfänger-Themen 3
R Arraygroesse dynamisch anpassen Java Basics - Anfänger-Themen 8
X this dynamisch, super statisch? Java Basics - Anfänger-Themen 3
G Namen von ArrayListen dynamisch erzeugen Java Basics - Anfänger-Themen 4
H variable dynamisch ändern Java Basics - Anfänger-Themen 2
G Klasse dynamisch ohne Datei compilieren: Fehler Java Basics - Anfänger-Themen 4
G Klasse dynamisch nachladen: Fehler Java Basics - Anfänger-Themen 9
T Array Dynamisch Erweiterm Java Basics - Anfänger-Themen 15
H dynamisch Klassen laden und ausführen Java Basics - Anfänger-Themen 3
M Gleichungen dynamisch erstellen und ausrechnen? Java Basics - Anfänger-Themen 8
G Pfad dynamisch gestalten. Java Basics - Anfänger-Themen 3
B Matrix Dynamisch erzeugen Java Basics - Anfänger-Themen 3
G JTable dynamisch erzeugen. Java Basics - Anfänger-Themen 2
D Labels Dynamisch ? Java Basics - Anfänger-Themen 5
6 Swing: Dynamisch erzeugte Objekte sind verschoben Java Basics - Anfänger-Themen 2
G Variablenname dynamisch vergeben Java Basics - Anfänger-Themen 10
H 2DArray manuell dynamisch erweitern Java Basics - Anfänger-Themen 7
G Länge eines Array trimmen oder dynamisch verändern. Java Basics - Anfänger-Themen 3
M Dynamisch Klassen aufrufen Java Basics - Anfänger-Themen 4
H JLabel dynamisch anzeigen? Java Basics - Anfänger-Themen 10
T ActionListener zu Buttons dynamisch zuordnen Java Basics - Anfänger-Themen 10
G dynamisch Jtextfields erzeugen Java Basics - Anfänger-Themen 3
M HTML Seite die Daten in JavaApplet dynamisch verarbeiten Java Basics - Anfänger-Themen 2
H Variablenname dynamisch festlegen Java Basics - Anfänger-Themen 3
H Variablenname dynamisch festlegen Java Basics - Anfänger-Themen 3
J Tabelle mit mehreren Zeilen dynamisch aufbauen Java Basics - Anfänger-Themen 2
K Bild dynamisch erstellen Java Basics - Anfänger-Themen 2
M Klasse dynamisch erzeugen! Java Basics - Anfänger-Themen 4
M [SOLVED]JComboBoxen dynamisch erstellen und abfragen Java Basics - Anfänger-Themen 2
S Dynamisch Platz für ein Array reservieren? Java Basics - Anfänger-Themen 7
Z Objekte dynamisch erzeugen Java Basics - Anfänger-Themen 19
O Variabelnamen dynamisch generieren Java Basics - Anfänger-Themen 3
E Klassenaufrufe dynamisch mit Reflection Java Basics - Anfänger-Themen 4
J Instanzen dynamisch erzeugen Java Basics - Anfänger-Themen 8
G jar dynamisch laden Java Basics - Anfänger-Themen 6
B Kann man in Java Variablen dynamisch generieren? Java Basics - Anfänger-Themen 3
B JTextField dynamisch anpassen Java Basics - Anfänger-Themen 6
G Komponenten dynamisch auf contentPane einbinden Java Basics - Anfänger-Themen 5
S Objekte dynamisch anlegen Java Basics - Anfänger-Themen 3
G Objekt Namen dynamisch vergeben. Java Basics - Anfänger-Themen 7
T Newbie Frage. Vector dynamisch benennen :( Java Basics - Anfänger-Themen 5
F Objekte dynamisch erstelle Java Basics - Anfänger-Themen 11
M String und Int Arrays dynamisch die Größe verändern Java Basics - Anfänger-Themen 7
C eine Liste dynamisch erzeugen ? Java Basics - Anfänger-Themen 6
G klasse dynamisch aufrufen, wie? Java Basics - Anfänger-Themen 6
G JToolbar dynamisch erweitern Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben