zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Double value = 2.5;

double sum = value + 5.7;

Ja, es funktioniert. Es ist die Kurzform für

Double value = new Double( 2.5 );

double sum = value.doubleValue() + 5.7;

Boxing und Unboxing

import java.util.* ;
public class WrapperExampleTwo
{
  public static void main ( String[] args)
  {
    ArrayList<Integer> data = new ArrayList<>();

    // Autoboxing
    // wird verwendet um Integer-Objekte zu erzeugen
    data.add( 1 );
    data.add( 3 );
    data.add( 17 );
    data.add( 29 );

    int sum = 0;
    for (Integer val : data)
      sum += val;
      // Unboxing wird verwendet um ints zu extrahieren

    System.out.print("sum = " + sum);

    System.out.println( );
  }
}

Hier ist ein Programm, das eine ArrayList mit Integer-Referenzen erstellt. Die Argumente für add() sehen wie int-Literale aus, aber zur Laufzeit werden die ints automatisch in Integer-Objekte umgewandelt.

Die for-each-Schleife durchläuft die Integer-Objekte nacheinander. Die Anweisung

// Unboxing wird verwendet
// um die ints zu extrahieren
sum += val;

benötigt ein primitives int, um es zur Summe hinzuzufügen. Unboxing extrahiert das int aus dem Integer, auf den val zeigt.


Frage 21:

Was denkt Ihr, wird das folgende Fragment funktionieren:

Double total, meal, tax;

meal = 20.00;
tax  = meal*0.12;
total = meal+tax;

System.out.println("Total Cost: " + total);

zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite