String  s = ...
switch(s) { 
  case "quux":
    processQuux(s);
    //  fall-through
  case "foo":
  case "bar":
    processFooOrBar(s);
    break;
  case "baz":
    processBaz(s);
    // fall-through
  default:
    processDefault(s);
    break;
}

Altra novità  mirata a rendere più compatto il codice è l’operatore <> (indicato come diamond), ossia le parentesi angolari che - ormai da qualche anno, dall’introduzione dei generics - ogni sviluppatore Java ha imparato a riconoscere. Mi riferisco, volendo modellare un'ipotetica estrazione del lotto, ad una dichiarazione di variabile del tipo List<Integer> estrazione;.

Da Dolphin in poi, sarà  possibile usare l’operatore diamond (lo si potrebbe considerare un “sottintendere” il contenuto delle parentesi angolari) quando:

  • si costruisce un oggetto e contestualmente lo si assegna ad una variabile. Esempio:
  • //prima di  Java 7
    Map> anagrams = new  HashMap>();
    //da Java 7 in poi
    Map> anagrams = new HashMap();
    
  • si ritorna come parametro una variabile. Esempio:
  • class TreeNode<T> {
      T value;
      TreeNode<T> left, right;
      private List<List<T>> buildPathsInternal(
        List<List<T>> list, List<T> currPath, TreeNode<T> node) {
        if (node == null) {
          // type inference does not save typing here; see section on Wildcards.
          list.add(new ArrayList<T>(currPath));
          return list;
        }
        currPath.add(node);
        buildPathsInternal(list, currPath, node.left);
        buildPathsInternal(list, currPath, node.right);
        currPath.remove(node);
        return list;
      }
      public List<List<T>> getAllPaths(TreeNode<T> head) {
        // Type inference saves typing here:
        return buildPathsInternal(new ArrayList<>(), new LinkedList<>(), head);
      }
    }
    

Gli esempi sono tratti dal blog di Joseph D. Darcy, da cui è possibile apprendere ulteriori dettagli su Project Coin.

1 CommentoDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *

[...] seguire i commenti a questo post attraverso RSS 2.0. Puoi pubblicare un commento o segnalare un trackback dal tuosito. [...]

Java 7: project coin | Dubito.it Blog
Java 7: project coin | Dubito.it Blog