Sviluppo applicazioni Android e utilizzo spesso annotazioni come controlli dei parametri del tempo di compilazione, principalmente Android support annotations.Come utilizzare le annotazioni typedef di Android Support in kotlin?
Esempio di codice Java:
public class Test
{
@IntDef({Speed.SLOW,Speed.NORMAL,Speed.FAST})
public @interface Speed
{
public static final int SLOW = 0;
public static final int NORMAL = 1;
public static final int FAST = 2;
}
@Speed
private int speed;
public void setSpeed(@Speed int speed)
{
this.speed = speed;
}
}
non voglio usare le enumerazioni a causa della loro problemi di prestazioni in Android. Il convertitore automatico di Kotlin genera solo codice non valido. Come faccio a utilizzare l'annotazione @IntDef
in kotlin?
È possibile utilizzare le enumerazioni liberamente, non sono 'lenti' in alcun senso (http://stackoverflow.com/questions/5143256/why-was-avoid-enums-where -solo-solo-bisogno-ints-removed-from-androids-performanc) –
@AlexanderUdalov, 1) https://www.youtube.com/watch?v=Hzs6OBcvNQE 2) le enumerazioni non sono parcellizzabili per impostazione predefinita che aggiunge anche boilerplate codice quando è necessario passare ai parametri di intento 3) quando il valore ricevuto dalla rete il modo di convertirlo in enum è oscuro ed elimina la sicurezza dell'enum. – curioushikhov
@curioushikhov ProGuard "semplifica i tipi di enum in costanti intere, quando possibile" ([Ottimizzazioni] (http://proguard.sourceforge.net/manual/optimizations.html)). – mfulton26