Avatar billede oink Nybegynder
30. april 2006 - 01:06 Der er 4 kommentarer og
1 løsning

Operator overloading

Hej.

Hvordan kan det være at ting som
Integer i = new Integer(2);
i++;

virker i java? Jeg troede ikke sproget havde operator overloading.
Avatar billede arne_v Ekspert
30. april 2006 - 01:11 #1
Det har Java heller ikke.

Men fra og med Java 1.5 har Java auto boxing og unboxing.

Hvilket betyder at Java konverterer mellem int og Integer bag om ryggen på dig.
Avatar billede arne_v Ekspert
30. april 2006 - 01:13 #2
hvis man tager det her program:

public class X {
  public static void main(String[] args) {
      Integer i = new Integer(2);
      i++;
      System.out.println(i);
  }
}

compiler det med Java 1.5 og så decompiler med DJ, så får man (jeg har slettet lidt
irrelevant):

public class X
{
    public static void main(String args[])
    {
        Integer integer = new Integer(2);
        Integer integer1 = integer;
        Integer integer2 = integer = Integer.valueOf(integer.intValue() + 1);
        Integer _tmp = integer1;
        System.out.println(integer);
    }
}
Avatar billede arne_v Ekspert
30. april 2006 - 01:17 #3
d.v.s. at der er en .intValue og en .valueOf
Avatar billede oink Nybegynder
30. april 2006 - 01:44 #4
Ah okay.
Avatar billede arne_v Ekspert
30. april 2006 - 01:49 #5
så ligger jeg et svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester