Come faranno le chiusure in Java permetterà di progettazione API per sostituire disegno lingua?

StackOverflow https://stackoverflow.com/questions/4764539

  •  16-10-2019
  •  | 
  •  

Domanda

posso vedere alcuni dei benefici delle chiusure, come ad esempio come possono avere il loro posto nella semplificazione librerie esistenti e fare qualche futura progettazione più semplice ed efficiente.

Tuttavia, uno dei punti chiave menzionati nel progetto di proposta (http://www.javac.info/consensus-closures-jsr.html) è nella sezione 2.5, punto e:

(La specifica migliorerà la lingua)

e) consente futura progettazione API per sostituire progettazione del linguaggio per estendere la piattaforma Java.

sto lottando per vedere come questo è il caso, sicuramente il design linguaggio è proprio questo - la progettazione del linguaggio stesso, e non può essere sostituito da un API Java a meno che non si apre tutta una serie di API che utilizzano strane chiusure per modificare la lingua (che dubito fortemente che accadrà.)

Qualcuno può far luce su questo e forse fornire un esempio di qualcosa che ha richiesto un cambio di lingua in precedenza, ma, con l'aggiunta di chiusure, non richiede più uno?

È stato utile?

Soluzione

progettazione API di lingua e le caratteristiche sono sicuramente intercambiabili in alcuni punti. Basta guardare qualcosa come la parola chiave sincronizzato in Java. E 'una parola chiave, ma potrebbe benissimo essere implementato come un'API se la lingua era sufficientemente non dettagliato. Le annotazioni sono un altro esempio. Il contrario un'annotazione @Stateless che rende tutti i metodi in una classe di transazionale, potrebbe anche essere una parola chiave lingua.

Chiusure in particolare, rendono facile a portata di mano un "blocco di codice" a un metodo, che potrebbe poi fare qualcosa con questo.

Un esempio greggio, una per ciascuna potrebbe essere:

for_each(myFooList, #(Foo foo) { 
   String something = foo.getBar() + foo.getKaz();
   System.out.println(something);
});

Forse non al 100% pulito come avere la per ogni loop direttamente sostenuto dalla sintassi del linguaggio, ma permette a tutti di facile esperienza con il linguaggio simile a miglioramenti.

Altri suggerimenti

Per chi non ha letto il progetto di proposta, ecco un piccolo dettaglio più dalla più avanti nello stesso documento:

L'aggiunta di chiusure semplifica l'evoluzione della piattaforma Java. Molte richieste di miglioramento linguistiche esistenti in database pubblico bug del sole può reindirizzato come richieste API per metodi che ricevono chiusure . Molte le esigenze future per le forme dichiarazione supplementari possono invece essere soddisfatti con l'aggiunta di metodi di libreria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top