Autore Topic: Compilazione dinamica come in delphi {$IFDEF VER180}  (Letto 724 volte)

Offline pumidru

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
  • Sistema operativo:
    Mac Osx 10.67
Compilazione dinamica come in delphi {$IFDEF VER180}
« il: 18 Ottobre 2011, 19:50:00 CEST »
0
Salve ho un piccolo problema, sono riuscito a far funzionare questo piccolo
codice
Codice: [Seleziona]
@Override
           protected Dialog onCreateDialog(int id) {           
                   //Determina versione di Android a livello di API
                        if (Build.VERSION.SDK_INT>10)    { 
                                 Calendar c = Calendar.getInstance();
                               int cyear = c.get(Calendar.YEAR);
                               int cmonth = c.get(Calendar.MONTH);
                               int cday = c.get(Calendar.DAY_OF_MONTH);

                               //start changes...
                               DatePickerDialog dialog = new DatePickerDialog(this, mDateSetListener, cyear, cmonth, cday);

                               Calendar minCal = new GregorianCalendar(1901, Calendar.JANUARY, 1);
                               Calendar maxCal = new GregorianCalendar(2199, Calendar.DECEMBER, 1);
                               dialog.getDatePicker().setMinDate(minCal.getTimeInMillis());
                               dialog.getDatePicker().setMaxDate(maxCal.getTimeInMillis());

                               return dialog;               
                        }
                    else {
                           
                              return new DatePickerDialog(this,
                                mDateSetListener,
                                mYear, mMonth, mDay);                           
                    }
           }

Ma sono costretto a compilare il programma sempre con le api 11,
ma se tento di compilare con le api inferiori (giustamente mi da errore)
esiste l'equivalente di questa direttiva delphi {$IFDEF VER180}
in java affinche nella compilazione se la faccio con la 10, 9, 8 viene
saltato il codice?

Spero di essere stato chiaro.

Grazie a Tutti.

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Compilazione dinamica come in delphi {$IFDEF VER180}
« Risposta #1 il: 18 Ottobre 2011, 20:07:05 CEST »
+1
Questa definizione l'ho trovata in wikipedia:

Citazione
Java [modifica]
 
In Java non esistono vere e proprie direttive di compilazione. L'unica cosa che "assomigli" ad esse è la seguente: è possibile evitare che il compilatore compili parti di codice all'interno di un metodo tramite l'uso di un blocco if che utilizzi come condizione una compile-time constant (si rimanda alle specifiche di linguaggio Java). In genere tale costante viene definita come un campo private static final, ad esempio private static final boolean _DEBUG.

È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Compilazione dinamica come in delphi {$IFDEF VER180}
« Risposta #2 il: 18 Ottobre 2011, 23:57:25 CEST »
0
Salve ho un piccolo problema, sono riuscito a far funzionare questo piccolo
codice
Codice: [Seleziona]
@Override
           protected Dialog onCreateDialog(int id) {           
                   //Determina versione di Android a livello di API
                        if (Build.VERSION.SDK_INT>10)    { 
                                 Calendar c = Calendar.getInstance();
                               int cyear = c.get(Calendar.YEAR);
                               int cmonth = c.get(Calendar.MONTH);
                               int cday = c.get(Calendar.DAY_OF_MONTH);

                               //start changes...
                               DatePickerDialog dialog = new DatePickerDialog(this, mDateSetListener, cyear, cmonth, cday);

                               Calendar minCal = new GregorianCalendar(1901, Calendar.JANUARY, 1);
                               Calendar maxCal = new GregorianCalendar(2199, Calendar.DECEMBER, 1);
                               dialog.getDatePicker().setMinDate(minCal.getTimeInMillis());
                               dialog.getDatePicker().setMaxDate(maxCal.getTimeInMillis());

                               return dialog;               
                        }
                    else {
                           
                              return new DatePickerDialog(this,
                                mDateSetListener,
                                mYear, mMonth, mDay);                           
                    }
           }

Ma sono costretto a compilare il programma sempre con le api 11,
ma se tento di compilare con le api inferiori (giustamente mi da errore)
esiste l'equivalente di questa direttiva delphi {$IFDEF VER180}
in java affinche nella compilazione se la faccio con la 10, 9, 8 viene
saltato il codice?

Spero di essere stato chiaro.

Grazie a Tutti.


Non esiste la compilazione dinamica ma puoi risolvere tramite il factory pattern:


http://it.wikipedia.org/wiki/Abstract_factory