Wann eine Wrapper Klasse verwenden und wann einen primitiven Datentypen?

Maik.Neumann

Aktives Mitglied
Juten Tach !

Ich frage mich, unter welchen Gesichtspunkten ich zwingend oder besser eine Wrapperklasse verwenden sollte und wann ich besser einen primitiven datentypen verwenden sollte.

Wann nehme ich also int und wann Integer.

Ich arbeite gerade ein wenig mit JSF und baue hier eine Klasse zusammen, die als Model fungieren soll. Diese Klasse habe ich als Managed Bean deklariert, sie besitzt einige Eingabefelder, die Zahlenwerte entgegenehmen sollen. Ist das Property nun besser ein int oder ein Integer (so als Anwendungsbeispiel)

Beste Grüße
Maik
 
Die Konventierung geht doch seit 1.6? von allein, daher brauchst dir keinen Kopf drum zu machen (Autoboxing). Allerdings ist die Frage auch so zu beantworten: Integer immer dann wenn man ein Objekt braucht.

int ist kein Objekt. D.h. int eigentlich nur immer innerhalb der Klasse als Variable, oder als Parameter für Methoden. Sobald man es wo reinstecken will, wird es zum Integer.
 
Zuletzt bearbeitet:
Integer i = 5;
Integer v =7;
Sysout(v+i);//13

Dank eines speziellen Mechanismus, der als Autoboxing bezeichnet wird, werden Integer automatisch zu ints gemacht. Du kannst mit einem Integer genau so rechnen, wie mit einem int. In C++ würde man es als Operatoren Überladung bezeichnen. Da es sowas in Java aber nicht gibt, heißt es Autoboxing.

Listen können keinen int aufnehmen. Generische Programmierung ist (bisher) nur mit Objekten möglich. Daher benötigt man in Listen oder auch Collections immer Objekte. Dazu gibt es Integer.
 
Gibt es denn auch so etwas wie Autounboxing? Ich meine wäre es möglich, einen int in eine Collection, Liste etc. zu tun und würde aus dem primitiven int dann automatisch ein Integer Objekt (eine Wrapper Instanz) werden?
 
Autounboxing hat Gucky gerade gezeigt.

Was ich nicht so ganz verstehe ist, wieso man sich unbedingt an sowas kleinem so lange aufhält.

Du kannst ja einfach ein int nehmen und dieses in eine Collection rein tun. Dann hast Du die Antwort.

Dann muss man sich fragen, wo ist der unterschied zwischen sysout.(7) und collection.add(7).

Sowas kommt aber nur mit der zunehmenden Programmiertätigkeit. Klar soll man die Hintergründe verstehen, aber jetzt kommt der Punkt: Do it.
 
Ich habe das jetzt einfach mal getan und es scheint so, dass der int automatisch einem Integer konvertiert wird.

Ob das aber tatsächlich so stimmt weiß ich nicht. Daher wäre ich über Antworten nochmals dankbar
 

Zurück
Oben