Suche
Teil 1: Strings in Switch, numerische Literale

Java 7: Project Coin

Angelika Langer und Klaus Kreft

Die Version 7 von Java wird eine Reihe von kleineren Sprachergänzungen bringen, die unter dem Namen Project Coin entwickelt wurden. In diesem Beitrag stellen wir einen Teil dieser neuen Sprachmittel aus dem Project Coin vor, nämlich verbesserte Notationen für numerische Literale und Strings in „switch“-Anweisungen.

Java 7 im Java Magazin

Mehr zum Project Coin erfahren Sie im kommenden Java Magazin: Angelika Langer und Klaus Kreft stellen die Neuerungen ausführlich in praxisnahen Beispielen vor.

Das Java Magazin 9.2011 erscheint am 4. August. Nicht verpassen!

Project Coin ist eine Sammlung kleinerer Spracherweiterungen. Die Ideen für diese Ergänzungen stammen aus der Java-Community selbst. Sun Microsystems hatte die Community aufgefordert, entsprechende Vorschläge zu machen und hatte aus der Fülle der Ideen eine Handvoll aufgegriffen. Die Idee dabei war es, die Sprache um Mittel zu erweitern, die nützlich und „klein“ sind. Folgende neue Sprachmittel werden mit Java 7 freigegeben:

  • Verbesserte Schreibweisen für numerische Literale
  • Strings in switch-Anweisungen
  • Verbessertes Exception Handling
  • Automatic Resource Management
  • Vereinfachungen beim Aufruf von Methoden mit variabler Argumentenliste
  • Verbesserte Type Inference für Konstruktoren generischer Typen (Diamond Operator)

In diesem Beitrag stellen wir die ersten beiden genannten Spracherweiterungen für Java 7 vor.

Wortspiel

Bei dem Projektnamen Coin handelt es sich übrigens um ein Wortspiel: Das englische Wort „coin“ bedeutet einerseits Münze, also Kleingeld oder Kleinigkeit, andererseits bezeichnet das Verb „to coin“ das Prägen von Münzen oder auch Begriffen.

Verbesserte Schreibweise für numerische Literale

Binary Literals: Bislang konnten numerische Literale nur dezimal (als 1), octal (als 01) oder hexadezimal (als 0x1) hingeschrieben werden. Mit dem JDK 7 [1], [2] gibt es nun auch die Möglichkeit der Binärdarstellung (als 0b1), z. B. folgendermaßen:

    int decimal = 43;
    int hex     = 0x2B;
    int octal   = 053;
    int binary  = 0b101011;

Underscores in Numbers: Im Java Sourcecode mussten numerische Literale bisher immer dicht geschrieben werden, d. h. ohne Leerzeichen oder andere Strukturierungszeichen zu enthalten. Für das menschliche Auge sind solche Strukturierungselemente aber sehr hilfreich, z. B. wenn man eine Telefonnummer oder eine Kreditkartennummer hinschreiben will. Die Nummer +49721629188 ist schwer verdaulich und in der Schreibweise +49 721 6291 88 deutlich besser als Telefonnummer zu erkennen. Um solche lesbareren Darstellungen zu erlauben, ist es im JDK 7 nun erlaubt, an praktisch allen stellen in einem numerischen Literal Unterstriche einzufügen [3]. Man dürfte die obige Telefonnummer nun also folgendermaßen schreiben: +49_721_6291_88. Der Compiler entfernt beim Parsen die Unterstriche, sodass im Bytecode wieder die alte kompakte Darstellung auftaucht. Folgend ein paar Beispiele:

     long phoneNumber = +49_721_6291_88L;
     long creditCardNumber = 1234_5678_9012_3456L;
     long hexWords = 0xFFEC_DE5E;
Geschrieben von
Angelika Langer und Klaus Kreft
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.