Sono interessato all'utilizzo di alcune delle funzionalità NIO2 nell'SDK Java 7, se disponibile (in particolare, lo file system watchers), tuttavia non desidero compilare le mie classi per Java 7 ed escludere Java 6 runtimes. Principalmente perché voglio mantenere la compatibilità con Mac OS X, e anche perché non voglio costringere i miei utenti ad aggiornare.Utilizzo di Java 7 Funzioni di SDK in Java 6
È possibile? Qual'è il miglior modo di farlo? Qualche link o esempio?
Ecco alcuni modi che posso immaginare: compilare un file di classe con un compilatore diverso e caricarlo dinamicamente in base alla versione di Java? O forse usando la riflessione? O forse c'è solo un'impostazione del compilatore per Java 7 per generare classi compatibili con Java 6?
Sto cercando una soluzione che non si trasformi in un brutto pasticcio :), quindi idealmente posso scrivere due implementazioni di un'interfaccia, una utilizzando le nuove funzionalità e una senza, quindi selezionarne una dinamicamente invece di avere fare chiamate riflessive dappertutto.
Dal momento che presumo che queste funzionalità inizino ad esistere in SE7, come pensi di essere in grado di compilare con una modalità di compatibilità SE6 e mantenerle? – KevinDTimm
Quello che voglio fare è usarli solo quando il programma viene eseguito su un runtime di Java 7, e se non lo è. Si noti che sto parlando delle funzionalità di Java 7 SDK, non delle funzionalità del linguaggio. –
Ci scusiamo, due basi di codice saranno necessarie (o, almeno, disporre di una base di gestione file separata per ogni ambiente e creare output separati per ogni versione in quanto il codice compilato nella versione X in genere non funziona in nessuna versione con numero inferiore) – KevinDTimm