toString() funktioniert bei Wrapper Klassen nicht #310
Labels
No Label
Codegen
confirmed
duplicate
Eclipse-Plugin
Feature Request
generics
in progress
invalid
JavaCompilerCore
needs info
Parser
Trash
Type
Unify
won't fix
works for me
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: JavaTX/JavaCompilerCore#310
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beim Aufrufen der toString() Methode auf Wrapperklassen der Basisdatentypen ist der Bytecode fehlerhaft.
Beispiel
Sourcecode
Bytecode von toString()
Im Bytecode wird nach
getfield
(mMn fälschlicherweise)Integer.intValue()
aufgerufen, um den Basisdatentyp zu bekommen. Erst danach wird versuchttoString()
aufjava.lang.Integer
aufzurufen. Allerdings liegt jetzt der Basisdatentyp auf dem Stack und der Aufruf schlägt fehl.Mit anderen Wrapperklassen wie
Boolean
,Double
,Float
ist das Problem das Selbe. Mit anderen Objekten funktioniert der Aufruf wie erwartet, da hier der Aufruf für den primitiven Datentyp logischerweise fehlt.