Primitive oder doch nicht?

Status
Nicht offen für weitere Antworten.
A

afiller

Gast
Hallo zusammen,

ich hab ein Problem bei welchem ich weder durch :### noch durch ???:L weiter gekommen bin:


Code:
public static void main(String[] args) {
   int i = 5;
   Integer j = new Integer(5);
   testMethode(i);
   testMethode(j);
}

private static void testMethode(Object o) {
   ?????????
}


Eigentlich recht einfach zu erklären mit dem gezeichten Code-Stück:

Wie komme ich an der Stelle mit den Fragezeichen an die Info ob mein Object o vorher ein int oder ein Integer war? Der Parameter muss in diesem Fall leider Object bleiben.

Ich hab schon 100 Dinge probiert wie o.getClass().isPrimitive() etc. aber das gibt leider alles kein true mehr zurück den Wert i weil er diese Info wohl durch das Casten auf das Object einfach total verliert.

Jemand Ideen?

Danke,

Andi[/code]
 

Leroy42

Top Contributor
afiller hat gesagt.:
Wie komme ich an der Stelle mit den Fragezeichen an die Info ob mein Object o vorher ein int oder ein Integer war?

Gar nicht! Brauchst du auch nicht, da einem Parameter, der als
Object deklariert wurde, kein int übergeben werden kann:

Edit: Der int wird automatisch, durch den Compiler, in ein Integer gewrapped.
 
M

maki

Gast
Object o ist auf jedenfall nicht richtig.

Durch Java 5 auto(un-)boxing sollte es auch keinen Unterschied mehr machen, ob es mal ein int oder Integer war.
 
A

afiller

Gast
maki hat gesagt.:
Object o ist auf jedenfall nicht richtig.

Mir bleibt an der Stelle im "echten" Programmcode leider nichts anderes übrig, da an die Methode jedes beliebige Objekt/Primitive übergeben werden können muss. Hatte auch schon überlegt die Methode zu überladen, aber da es mehr als nur ein beliebiger Übergabeparamter wird und es kein Array sein darf bleibt mir nicht anderes übrig.

maki hat gesagt.:
Durch Java 5 auto(un-)boxing sollte es auch keinen Unterschied mehr machen, ob es mal ein int oder Integer war.

Leider schon, denn die Reflection API unterscheidet leider bei class.getMethod noch zwischen int.class und Integer.class
 
G

Gast

Gast
Leroy42 hat gesagt.:
Edit: Der int wird automatisch, durch den Compiler, in ein Integer gewrapped.

Genau darum gehts. Kann ich irgendwie danach feststellen ob das passiert ist oder ob es sich um einen bewusst als Integer.class erstellten Wert handelt?
 
M

maki

Gast
Mir bleibt an der Stelle im "echten" Programmcode leider nichts anderes übrig, da an die Methode jedes beliebige Objekt/Primitive übergeben werden können muss. Hatte auch schon überlegt die Methode zu überladen, aber da es mehr als nur ein beliebiger Übergabeparamter wird und es kein Array sein darf bleibt mir nicht anderes übrig.
Nun, wenn es wirklich so allgemein sein muss, dann muss es wohl so sein, *neugier*

Leider schon, denn die Reflection API unterscheidet leider bei class.getMethod noch zwischen int.class und Integer.class
Du scheinst noch nicht zu verstehen ;)

aus:
Code:
testMethode(i);
wird:
Code:
testMethode(Integer.valueOf(i));
testMethode wird nie etwas anderes als ein Integer Objekt erhalten, deswegen kann testMethode auch nicht unterscheiden.
Auto(un-)boxing eben ;)
 

Janus

Bekanntes Mitglied
autoboxing und reflection stehen auf kriegsfuss. gibt keine lösung für dein problem. für primitive muss man sich immer irgendeine speziallösung einfallen lassen.
 
A

afiller

Gast
Janus hat gesagt.:
autoboxing und reflection stehen auf kriegsfuss. gibt keine lösung für dein problem. für primitive muss man sich immer irgendeine speziallösung einfallen lassen.

Ich habs befürchtet, dennoch danke an alle für die Beiträge, dann war ich immerhin nicht zu doof dazu ;)
 

ms

Top Contributor
Erklär bitte nochmal, warum du die Methode für primitive Typen nicht überladen kannst!

ms
 
A

afiller

Gast
ms hat gesagt.:
Erklär bitte nochmal, warum du die Methode für primitive Typen nicht überladen kannst!

ms

Können schon, aber es ist eine Methode für 10 Paramter...10 mal Object ist ok, weil Object alles sein kann, aber überleg dir mal wieviele Kombinationen es gibt wenn ich jede Kombination mit Wiederholungen und relevanter Position für alle Primitives und deren Arrays überladen will --> Ich bin kein Mathe-Ass, aber das sind mehr Möglichkeiten als beim Lotto

Ich bleibe daher bei meinen Objects und such ne andere Lösung :)
 

thE_29

Top Contributor
Kannst du mir sagen was du machen willst?

Via Reflection kann man sehr wohl Methoden mit int aufrufen. Man muss es aber mit einem Integer aufrufen (raussuchen aber mit int.class).
 
A

afiller

Gast
thE_29 hat gesagt.:
Kannst du mir sagen was du machen willst?

Via Reflection kann man sehr wohl Methoden mit int aufrufen. Man muss es aber mit einem Integer aufrufen (raussuchen aber mit int.class).

Meine Methode sieht wie folgt aus:

Code:
protected void notify(Object ... o) {

Und nun möchte ich über Reflection genau die Methode wieder finden die die Übergabe-Parameter hat. Den Namen der Methode weiß ich, aber wenn jemand ein int übergibt und es zu Integer geboxt wird, dann finde ich meine Zielmethode über Reflection leider nicht --> Java-Lücke, es müsste auch für Integer gefragt werden können ob es durch Boxing entstanden ist oder nicht.

Andi :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Lombock primitive Felder in RequiredArgsConstructor Allgemeine Java-Themen 2
W Primitive Datentypen - Klassenpfad auflösen? Allgemeine Java-Themen 6
C Best Practice [Arrays] Wie sinnvoll prüfen, ob Array primitive Datentypen enthält? Allgemeine Java-Themen 6
O primitive Datentypen threadsicher? Allgemeine Java-Themen 13
K Arrays.asList und primitive Typen Allgemeine Java-Themen 2
C Primitive Datentypen in Threads Allgemeine Java-Themen 4
the[V]oid Primitive Arrays per Reflection erzeugen? Allgemeine Java-Themen 2
the[V]oid Primitive Datentypen Wrappen und als primitiv markieren? Allgemeine Java-Themen 7
F Allegemeiner Datentyp für Objekte und Primitive Variablen Allgemeine Java-Themen 6
B SimpleDateFormat oder doch lieber GregorianCalendar Allgemeine Java-Themen 3
H Erste Schritte Java installiert oder doch nicht? Allgemeine Java-Themen 8
G Java Preferences API oder lieber doch nicht? Allgemeine Java-Themen 10
P Runnable Jar File über Windows ausführbar doch über Linux nicht Allgemeine Java-Themen 8
C Java Polling, Server Prozedur oder doch Datenbank? Allgemeine Java-Themen 4
G Observer / Observable oder doch lieber Message Broker? Allgemeine Java-Themen 2
ARadauer zuweisung ergibt doch true, oder? Allgemeine Java-Themen 17
spacegaier invokeLater wird doch immer ausgeführt, oder? Allgemeine Java-Themen 8
J Textdatei oder doch DB? Allgemeine Java-Themen 2
V String oder doch InputStream? Allgemeine Java-Themen 9
thE_29 Foxtrot doch nicht so super. Allgemeine Java-Themen 12
A StringTokenizer oder doch anders? Formelinterpretieren. Allgemeine Java-Themen 4
C Thread zu langsam ==> kann doch nicht sein oder? Allgemeine Java-Themen 9
D Compiler-Fehler Compilierung in VM nicht erfolgreich Allgemeine Java-Themen 10
D WSDL-Aufruf funktioniert nicht mehr nach Umstieg auf Maven Allgemeine Java-Themen 4
H KNN Erkennt Zahl Nicht Allgemeine Java-Themen 7
W ICEpdf PDF-Dateien werden mit Java 21 nicht nicht mehr vollständig dargestellt Allgemeine Java-Themen 3
Zrebna Berechnung der Zeit funktioniert nicht wie erwartet: Date, GregorianCalendar Allgemeine Java-Themen 16
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
kodela Textfeld nicht rechteckig Allgemeine Java-Themen 10
G Doppelklick auf Javaprogramm klapt nicht Allgemeine Java-Themen 1
W Timer terminiert nicht Allgemeine Java-Themen 5
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Regex schlägt nicht an Allgemeine Java-Themen 10
Y Wieso krieg ich die Unit Tests nicht hin Allgemeine Java-Themen 55
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
G Popup wird nicht sichtbar Allgemeine Java-Themen 9
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
OnDemand XML desializing Attribute bringt nicht erwartetes Ergebnis Allgemeine Java-Themen 16
T ImageIcon wird nicht angezeigt Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
Tiago1234 Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 38
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
A code wird nicht ausgeführt Allgemeine Java-Themen 3
Blender3D Alte Beiträge nicht mehr vorhanden Allgemeine Java-Themen 6
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Micha43 Applet *.jar läuft nicht auf dem Mac Allgemeine Java-Themen 8
M Warum bekommen ich den Result nicht ? Allgemeine Java-Themen 17
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
P Karate API Test läuft nicht durch . initializationError Allgemeine Java-Themen 21
N nicht static und auch nicht new Allgemeine Java-Themen 3
Z macOS java konnte nicht entfernt werden xpc verbindungsfehler Allgemeine Java-Themen 4
T Schaltfläche wird nicht gefunden Allgemeine Java-Themen 4
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
AleXusher Hauptklasse startlösung konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 1
G @PostConstruct Annotation nicht mehr gültig ? Allgemeine Java-Themen 7
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
izoards log4j2 will nicht.... Allgemeine Java-Themen 15
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
I serialVersionUID - explizit vergeben oder nicht? Allgemeine Java-Themen 6
MiMa Vorhandenes das nicht existiert?? Allgemeine Java-Themen 7
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
O Jar lässt sich auf bestimmten Pc nicht starten Allgemeine Java-Themen 18
T Fremde Typen mockt man nicht? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben