Field auf Datentyp prüfen

javaEule

Mitglied
Hallo,
Ich habe eine Klasse, welche ist variabel, und möchte für alle Fields eine Aktion durchführen.
Dabei ist wichtig, ob es sich um einen Basisdatentyp wie int, double, boolean, handelt oder nicht.
wie kann ich prüfen ob es ein basisdatentyp ist bzw. um welchen datentyp es sich handelt?
mit instanceof (zumindest so wie ich es gemacht habe) funktioniert es nicht...
hier noch ein kleiner codeausschnitt:

Java:
		Field[] fields = class.getDeclaredFields();
		for(Field f : fields){
			if(f instanceof boolean || f instanceof int) // alle basisdatentypen
                        else // komplexe datentypen
{

schonmal im voraus danke für die schnelle Hilfe
mfg
 

Volvagia

Top Contributor
Mit der Klasse vergleichen.

Java:
if(f instanceof Boolean || f instanceof Integer) // alle basisdatentypen
	else // komplexe datentypen

btw. was hast du vor? Das sieht aus, als würdest du jede Typesicherheit über Bord werfen.
 

HimBromBeere

Top Contributor
InstanceOF verlangt nach ´nem nicht-primitiven Datentyp, einem Objekt also, darum musst du schon die Wrapper-Klassen Double, Boolean und/oder Integer verwenden.

EDIT: Mist, zu spät.

Alternativ müsste übrigens auch gehen:
Java:
if (f.getClass.equals(Integer.class))
 
Zuletzt bearbeitet:

AquaBall

Top Contributor
instanceof funktioniert nur mit Objecten!
int, boolean sind aber primitives!
(Außerde würde ich dir Klammern empfehlen.)

Ändere es auf:
Java:
  for(Field f : fields){
            if((f instanceof Boolean) || (f instanceof Integer)) // alle basisdatentypen
                        else // komplexe datentypen
 

javaEule

Mitglied
EDIT: danke, nummer 2 und 3 ham mir weitergeholfen
schon auf ersten beitrag geantwortet:

es wird so eine art editor für config files und ich kann vorher eben nicht wissen was da für datentypen ankommen.
Java:
if(f instanceof Boolean)
geht auch nicht:
incompatible conditional operand types Field and Boolean

könnte das sein dass ich instanceof bei einem Field nicht so testen kann?
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
Schau dir mal die Api zu Field an, da sollte es eine Methode
Code:
getDeclaringClass
geben, die dir dann ein
Code:
Class
-Objekt zurückgibt.
 

Volvagia

Top Contributor
Seltsames Vorgehen. Für Konfiguration würde ich eher Properties empfehlen, ist eine IO-Klasse für Hashtables.

Field kann eigendlich schon so verglichen werden, nur liegt es mit Boolean etc. nicht auf der selben Vererbungslinie. (Hab nicht weiter gedacht)
Du müsstest da irgendwie den Inhalt für instanceof extrahieren. Hab aber die Methode getType(); enddeckt, hilft die dir weiter?
 

javaEule

Mitglied
also ich habs jetzt mit:
f.getClass().equals(Integer.class)
gemacht, und das funktioniert auch soweit.

Properties wären auch noch ne Möglichkeit gewesen, daran hab ich garnich gedacht, aber jetz läufts auch so :D

danke nochmal an alle für die schnelle Hilfe
 

AngryDeveloper

Bekanntes Mitglied
f.getType() um den Typ des Feldes zu bekommen (als Class<?>).

Dann sollte die Überprüfung bei primitiven so funktionieren:
Java:
if (f.getType() == Integer.TYPE) {
  //stuff
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Optionals als field Java Basics - Anfänger-Themen 1
B Get property field von Name Java Basics - Anfänger-Themen 9
C Compiler-Fehler No such Field error Java Basics - Anfänger-Themen 20
B OOP next cannot be resolved or is not a field Java Basics - Anfänger-Themen 6
K Compiler-Fehler Button cannot be resolved or is not a field Java Basics - Anfänger-Themen 6
A Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 6
K Variablen Cannot make a static reference to the non-static field time Java Basics - Anfänger-Themen 6
T Cannot refer to an instance field xxx while explicitly invoking a constructor Java Basics - Anfänger-Themen 14
P Compiler-Fehler Cannot make a static reference to the non-static field process Java Basics - Anfänger-Themen 3
R Compiler-Fehler sequenz cannot be resolved or is not a field Java Basics - Anfänger-Themen 2
K OOP Vererbtes Field über Class Objekt Java Basics - Anfänger-Themen 3
G field public/private wann Java Basics - Anfänger-Themen 11
I Verwendung von Constant Field Values Java Basics - Anfänger-Themen 4
J Interface: The final field Variablen.N cannot be assigned Java Basics - Anfänger-Themen 2
G access static field Java Basics - Anfänger-Themen 2
F Read access to enclosing field xy is emulated . Java Basics - Anfänger-Themen 2
S Field einer abstrakten Klasse wird nicht gesetzt Java Basics - Anfänger-Themen 2
D Field Java Basics - Anfänger-Themen 4
T Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 8
T GUI, JMenuBar Fehler: The field menuBar is not visible Java Basics - Anfänger-Themen 7
F Datentypen Wertebereiche passender Datentyp Java Basics - Anfänger-Themen 5
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
H Datentyp mit 3 Zuständen Java Basics - Anfänger-Themen 42
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
Kanaska Datentyp für Zahlenbereiche Java Basics - Anfänger-Themen 7
A Datentyp char Java Basics - Anfänger-Themen 27
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
T Datentyp mit Anführungszeichen drinnen Java Basics - Anfänger-Themen 3
R Datentypen Datentyp String lenght & charAT Java Basics - Anfänger-Themen 4
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
B Datentypen Datentyp welcher den gleichen Namen wie die Klasse trägt? Java Basics - Anfänger-Themen 1
D Datentypen Welcher ist der beste Datentyp? Java Basics - Anfänger-Themen 28
F Datentypen Missverständnis Datentyp Java Basics - Anfänger-Themen 2
D Rechnen mit numerischen Datentyp Frage Java Basics - Anfänger-Themen 16
E Klassename als Datentyp??? Java Basics - Anfänger-Themen 4
F Wertebereich/Datentyp Java Basics - Anfänger-Themen 26
M Datentypen Java Datentyp Definition Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
E Datentypen Benutzerdefinierten Datentyp verwenden Java Basics - Anfänger-Themen 1
ms_cikar Java Datentyp unwandlung Java Basics - Anfänger-Themen 7
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
M Interface als Datentyp Java Basics - Anfänger-Themen 12
R Variablen Datentyp erst während Laufzeit festlegen Java Basics - Anfänger-Themen 6
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
R Datentypen Datentyp eines Werts in einer Textdateizeile abfragen und ändern Java Basics - Anfänger-Themen 4
R Interface Datentyp bei Erzeugung eines Objekts, dessen Klasse eine Schnittstelle implementiert Java Basics - Anfänger-Themen 18
B Collections Collection soll nur einen bestimmten Datentyp aufnehmen Java Basics - Anfänger-Themen 12
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
B datentyp in binär umwandeln Java Basics - Anfänger-Themen 5
S Primitiver Datentyp Short , Vorteil/Nachteil Betrachtung Java Basics - Anfänger-Themen 6
D Datentyp Object Java Basics - Anfänger-Themen 2
A Datentypen Mehrdimensionaler Datentyp gesucht Java Basics - Anfänger-Themen 4
D Datentypen Abstrakter Datentyp lässt sich nicht casten Java Basics - Anfänger-Themen 7
F Klassenorganisation: Datentyp in Datentyp anlegen Java Basics - Anfänger-Themen 3
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
J Datentypen Was ist der Sinn vom Datentyp "char" ? Java Basics - Anfänger-Themen 11
G Eigener Autoboxing Datentyp Java Basics - Anfänger-Themen 3
Binary.Coder Welcher Datentyp für den Simplex Algorithmus Java Basics - Anfänger-Themen 3
Guybrush Threepwood Effizientester Datentyp zur Speicherung einer ungeordneten Menge von ints Java Basics - Anfänger-Themen 8
B Datentyp für +,-,*,/ Java Basics - Anfänger-Themen 5
D Datentypen Rekursiver Datentyp Java Basics - Anfänger-Themen 8
GianaSisters Auf Datentyp überprüfen Java Basics - Anfänger-Themen 13
W Datentypen Operatoren für eigenen Datentyp nutzen Java Basics - Anfänger-Themen 2
M Array mit komplexem Datentyp Java Basics - Anfänger-Themen 9
M 2 Arrays mit komplexen Datentyp vergleichen Java Basics - Anfänger-Themen 8
G Datentypen Welcher Datentyp Java Basics - Anfänger-Themen 2
F Datentypen Welchen Wert hat ein einfacher Datentyp nach der Deklaration? Java Basics - Anfänger-Themen 6
J Datentypen Datentyp für Datum Java Basics - Anfänger-Themen 23
B Java Bean, JSP, Komplexer Datentyp Java Basics - Anfänger-Themen 3
I Datentypen Eigener DatenTyp Java Basics - Anfänger-Themen 2
E Datentyp Array Java Basics - Anfänger-Themen 10
M Datentypen Eigenen Datentyp toArray() Java Basics - Anfänger-Themen 4
A Datentyp Char wird in BlueJ nur als leerer weißer Kasten dargestellt Java Basics - Anfänger-Themen 1
N Frage zu Datentyp byte Java Basics - Anfänger-Themen 14
F Datentyp Number???? Java Basics - Anfänger-Themen 2
A einlesen, schreiben, umwandlung datentyp Java Basics - Anfänger-Themen 10
A Datentyp mit String festlegen? Java Basics - Anfänger-Themen 13
D Generischer Datentyp Java Basics - Anfänger-Themen 2
D Datentyp: Liste von String->Double dingern Java Basics - Anfänger-Themen 4
K Datentyp vs. Datenstruktur - Unterschiede Java Basics - Anfänger-Themen 13
C Datentyp von einer Variablen ermitteln. Java Basics - Anfänger-Themen 12
M Datentyp Parameter Java Basics - Anfänger-Themen 18
R Welchen Datentyp verwenden? Java Basics - Anfänger-Themen 12
B Datentyp anlegen Java Basics - Anfänger-Themen 6
M Eigene Klasse mit "Enumeration"-Datentyp verknüpfe Java Basics - Anfänger-Themen 16
K Datentyp Problem Java Basics - Anfänger-Themen 2
X Rekursion & Generischer Datentyp Java Basics - Anfänger-Themen 11
A neuen Datentyp (Digit) definieren Java Basics - Anfänger-Themen 12
A Datentyp String in char umwandeln Java Basics - Anfänger-Themen 3
J datentyp -objectTyp Rückgabe Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben