# Überprüfen, ob Datentyp ein Objekt ist



## Patrick2606 (10. Dez 2003)

Hallo!

Wie kann ich überprüfen lassen, ob ein Datentyp vom Typ Objekt ist, oder von einem primitiven Datentyp. Das ganze soll als if-then Anweisung funktionieren. 

if var1 vom Typ Objekt
  then ...
else vom Primitiven Datentyp
  ...

Ich hoffe ich konnte einigermaßen klar machen, worum es mir geht.

Danke schonmal!

Patrick


----------



## jptc.org (11. Dez 2003)

Da hab ich gleich mal ne Frage, welche Variable kann gleichzeitig ein primitiver Datentyp und ein Object sein? Entweder var1 wurde als Object deklariert oder als prim Datentyp. Das dynamische ändern des Typ von Object nach prim Datentyp ist nicht möglich.

Kannst Du vielleicht Dein Problem etwas näher erklären?

Karsten Voigt
http://www.java-performance-portal.org


----------



## bummerland (11. Dez 2003)

sind nicht primitive datentypen auch objekte?


----------



## mariopetr (11. Dez 2003)

```
assert(var!=null);
if(var.class.isPrimitive)
{
//do for primitive
}
else
{
//do other
}
```


----------



## Patrick2606 (11. Dez 2003)

@mariopetr: Hallo. Danke erstmal für die Antwort. Im Prinzip ist dein Vorschlag das, was ich meine. Bei mir findet er aber isPrimitive nicht. Muß ich dazu nnoch ein Package importieren?

@all: Es geht darum in einer Schleife zu prüfen, ob eine Varaibel primitiv ist oder nicht. Wenn sie primitiv ist wird die Variable so ausgegeben. Wenn Objekt, dann soll sie serialisiert werden.

Patrick


----------



## Patrick2606 (11. Dez 2003)

Ok, ich habs jetzt probiert mit

var.getClass.isPrimitive

Aber der nimmt das nicht an für int, weil der Compiler ein Objekt erwartet???


----------



## bygones (11. Dez 2003)

ok, entweder meine Weltordnung muss neu definiert werden oder wie können primitive Typen Objekte im Sinne von Klasseninstanzen sein. 

somit kann doch das gar nicht gehen:

int x = 0;
x.getClass() o.ä. geht doch nicht !!

Wie bekommst du eigentlich deine Daten ?? wenn du sie aus ner Datenbank ausliest weißt du doch, was du bekommst, wenn du es aus einen Array oder einer Liste bekommst, müssen Objekte drinstehen....

Alos ich verstehe das Problem nicht !!


----------



## schnuffie (11. Dez 2003)

Hallo Leute,

immer wieder fällt mir auf, das in diesem Forum arg arogante Antworten gegeben werden, muß das sein?

Primitive Datentypen sind keine Objekte. Sie können durch die entsprechenden Wrapper-Klassen als Objekte dargestellt werden. Somit werden sie z.B. für die Collections speicherbar.

Vielleicht sollte man das so testen:

```
//...
if (wert instanceof Number.class) {
  long l = ((Number)wert).longValue();
  //...
}
else {
  //...
}
//...
```


----------



## mariopetr (11. Dez 2003)

schnuffie hat gesagt.:
			
		

> Hallo Leute,
> immer wieder fällt mir auf, das in diesem Forum arg arogante Antworten gegeben werden, muß das sein?


definitiv ja *g*. im ernst, manche sind derart lernresisten oder einfach nur so faul (zu faul zum suchen des offensichtlichen), dann kann man sich das nicht verkneifen.



			
				schnuffie hat gesagt.:
			
		

> Primitive Datentypen sind keine Objekte. Sie können durch die entsprechenden Wrapper-Klassen als Objekte dargestellt werden. Somit werden sie z.B. für die Collections speicherbar.



ein ganz klares jain. wenn man mit reflection arbeitet, sind ploetzlich auch primitive variablen oder renturnwerte objekte.


----------



## Guest (14. Dez 2003)

Zum letzten Mal Hallo,

@Schnuffie: Dank für dein konstruktive Hilfe.

@mariopetr: Keine Angst ich werde euch in diesem Forum nicht mehr belästigen, gibt genug andere Foren, in denen man sich nicht vorwerfen lassen muss, man wäre "lerresistent" oder "faul". Vor allem wenn es nicht zutrifft. Da ich mit Reflection arbeite habe ich Objekte. Aber mir wurde anderweitig schon auf bedeutend unkompliziertere Art geholfen. Aber gut zu wissen, dass man es trotz Lernresistenz und Faulheit zum Diplom-Informatiker bringen kann. :wink: 

Patrick


----------



## mariopetr (14. Dez 2003)

hmm, warum du dich jetzt explizit angesprochen gefuehlt hast, wirst wohl nur du wissen. imho bezog sich der (von mir beantwortete) kommentar von schnuffie auf den kommentar von deathbyaclown (oder im allgemeinen auf das forum) und nicht auf deinen. ich koennte mich auch nicht daran erinnern dir irgend etwas vorgeworfen zu haben oder dir eine "dumme" antwort gegeben zu haben (btw. wenn du zitierst, dann bitte richtig). das uns jetzt ein dipl inf (wow, ich erblasse) verloren geht, tut uns ganz wahnsinnig leid, die restlichen 428 registierten nutzer werden gleich mal heulen gehen.


----------



## bygones (14. Dez 2003)

was mein Kommentar ?? ich lernresistent oder bezieht sich das auf meine glorreiche antwort bei dem GregorianCalendar Thread ???

merkwürdig, naja, was solls.....

PS: Ich werde nie ein Dipl Inf sein  :?


----------



## mariopetr (14. Dez 2003)

weder noch, das posting von schnuffi stand halt direkt unter deinem, vieleicht sollte man hier mal ne baumstruktur einfuehren


----------



## AlArenal (14. Dez 2003)

mariopetr hat gesagt.:
			
		

> weder noch, das posting von schnuffi stand halt direkt unter deinem, vieleicht sollte man hier mal ne baumstruktur einfuehren



Vielleicht sollte man die Zitat-Funktion nutzen, oder sich an gebräuchliche Regeln, wie die der persönlichen Anrede, orientieren.


----------



## Ebenius (15. Dez 2003)

Mein Gott - man merkt: Das Jahr geht zu Ende und alle sind im Stress und leicht reizbar...

@mariopetr: Ich fall Dir ja ungern in den Rücken, aber nicht jeder arbeitet 40h/Woche mit Java. Ich glaube wir haben alle schon mehr oder weniger sinnvolle Fragen gestellt, oder?! :wink:

Obwohl Du ja auch manchmal recht hast. Ab und an merkt man schon, dass die Fragen durch simples in-die-API-gucken nie aufgekommen wären. Hast Dir allerdings hiermit nicht unbedingt den richtigen Thread ausgesucht...

@all: seid lieb!

Ebenius


----------



## Stefan1200 (15. Dez 2003)

Jungs und Mädels, es ist bald Weihnachten. Da wird nicht gemekert ;-) *g*

Wir atmen alle mal tief durch. Aber nicht die Zettel vom Schreibtisch pusten ;-)


----------



## bygones (15. Dez 2003)

na immerhin wäre dann mein Schreibtisch wieder frei  :wink: 

BTW: Hat sich das eigentliche Thema aufgeklärt - scheinbar....


----------



## nekton (15. Dez 2003)

Patrick2606 hat gesagt.:
			
		

> Hallo!
> Wie kann ich überprüfen lassen, ob ein Datentyp vom Typ Objekt ist, oder von einem primitiven Datentyp. Das ganze soll als if-then Anweisung funktionieren.
> 
> if var1 vom Typ Objekt
> ...



ich wuerde es im allgemeinen so machen


```
boolean isObject = ( x instance of Object);
```


----------

