25. april 2002 - 11:45Der er
11 kommentarer og 1 løsning
parseInt - valueOf
Er der nogen der kan forklare en BEGYNDER forskellen på: m = Integer.parseInt(text); og m = Integer.valueOf(text).intValue(); Er det ene bedre end et andet? MVH
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
static int parseInt(String s) Parses the string argument as a signed decimal integer. static int parseInt(String s, int radix) Parses the string argument as a signed integer in the radix specified by the second argument.
static Integer valueOf(String s) Returns a new Integer object initialized to the value of the specified String. static Integer valueOf(String s, int radix) Returns a new Integer object initialized to the value of the specified String.
Tror ikke der er den store forskel herudover kan du også bruge en constructor der tager en string som agument.
Integer(String s) Constructs a newly allocated Integer object that represents the value represented by the string.
Integer.valueOf(...).intValue(); er en tyngre operasjon siden 'Integer.valueOf(...)' oppretter et nytt objekt av typen 'Integer'. Denne måte kan også skrives på denne måte:
new Integer(Integer.parseInt(s)).
Integer.parseInt(...) er en lettere operarasjon siden ingen nye objekter opprettes...
Returns an Integer object holding the value extracted from the specified String when parsed with the radix given by the second argument. The first argument is interpreted as representing a signed integer in the radix specified by the second argument, exactly as if the arguments were given to the parseInt(java.lang.String, int) method. The result is an Integer object that represents the integer value specified by the string. In other words, this method returns an Integer object equal to the value of: new Integer(Integer.parseInt(s, radix))
hmm....det var kanskje ikke særlig godt forklart :-|
'Integer.valueOf(...).intValue()' skal sees på som 2 operasjoner:
Integer newInt = Integer.valueOf( dinString )
alternativt
Integer newInt = new Integer( Integer.parseInt( sinString ) )
og
newInt.intValue()
lyhr007 >> enhver idiot kan lese hva som står i dokumentasjonen og evt copy/paste det inn i en debatt, men det er ikke alle som *forstår* hva som står i dokumentasjonen, og da har ikke ordene noen særlig hensikt ;-)
Det der returneres fra parseInt er blot et tal int mittal = parseInt( "25" ); Det der returneres fra Integer.valueOf er et objekt med et tal indeni. så når du siger: ind mitTal = Integer.valueOf( "25" ).intValue(); får du først oprettet et Integer objekt og derefter bliver det Objekt nedlagt igen forrdi intValue() ikke returnerer andet end talværdien i det. Det er lidt spild af computerkraft sådan oprette og nedlægge et objekt når det ikke skal bruges til noget. så brug hellere parseInt.
Jeg ved godt at javadoc'en findes det var faktisk der jeg øje på "valueOff" Jeg kunne bare godt tænke mig at vide sådan skåret lidt ud i pap hvorfor der er to metoder at gøre det samme på. I min "lærebog" Deitel & Deitel "Java how to program" (den er ret ny) bruger de parseInt. Så undrer det mig at se det andet
parseInt returnere en simpletype int. valueOf returnere en object Integer.
Derfor kommer det vel an på hvad man skal bruge den integer til.
Hvis man nu skal bruge den i en methode som skal have en int, er der ingen grund til at lave et Integer obejct hvorefter man tager int værdien fra det object og giver videre.
Men hvis methoden nu tager en Integer som agument, bliver man jo nød til at lave en int om til object og så kan man vel lige så godt gøre det først som sidst.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.