2015-03-30 16 views
7

Per alcune ragioni, non possiamo usare Java 8 in questo momento - siamo ancora bloccati in Java 7.
Tuttavia, mi piacerebbe utilizzare la nuova JSR-310 date/time APIs in questo momento, utilizzando il official backport ThreeTen.Confrontando ThreeTen backport di JSR-310

sua homepage stati:

The backport is NOT an implementation of JSR-310, as that would require 
jumping through lots of unnecessary hoops. Instead, this is a simple backport 
intended to allow users to quickly use the JSR-310 API on Java SE 6 and 7. 

Domande:

  1. Quali sono i tuoi esperienza con ThreeTen? Ci sono alcuni inconvenienti?

  2. Come compatibile è confrontato con le implementazioni ufficiali JSR-310?

  3. Quanto sforzo è necessario per la migrazione da ThreeTen a un'implementazione ufficiale di Java 8?

  4. vale la pena di migrare subito a ThreeTen e poi a JSR-310 - o qualcuno dovrebbe aspettare fino a Java 8 può essere utilizzato, hencing saltare ThreeTen?

+4

Una cosa che non si ottiene è il brdidge dell'API Date - ad esempio in Java 8 è possibile scrivere 'new Date (...). ToInstant()' ma non lo si avrà in Java 7. Questo potrebbe o non potrebbe essere un problema per il tuo caso d'uso. – assylias

+0

Credo che le risposte alle domande 3/4 dipenderebbero pesantemente da ** come ** usi l'API di backport Three Ten. Immagino: se stai attento; e cerca di capire le conseguenze delle tue azioni; gli sforzi per q3 dovrebbero essere minimi. – GhostCat

+0

Usa o Attendi o - terza alternativa - ** Data/ora ** JODA. Siccome le vecchie classi sono meglio dimenticate, le lezioni di data/ora possono essere non testate, si può andare per i test di backport + unit + unit test sotto Java 8. Questo è più facile, più piacevole di una successiva riscrittura. D'altra parte ne vale la pena? –

risposta

7

Vedere questo blog post.

ThreeTen-Backport è un solido backport composto da codice equivalente per l'API principale (sebbene non sia così valido per i sistemi di calendario non ISO). Per convertire in Java 8 java.time è necessario modificare il nome del pacchetto e modificare alcune costanti come riferimento al metodo.

Non consiglierei di migrare da Joda-Time a ThreeTen-Backport, ma consiglio di migrare da Joda-Time a Java 8 java.time.

+0

È ora possibile migrare a java.time? –