get () da una lista, ma passando come argomento lungo in Java [duplicato]
Sto cercando di ottenere un elemento da un elenco List<Class> listofitemse ho una variabile globale positiondi tipo long. Vorrei esibirmi listofitems.get(position)ma non me lo permette poiché getprende intcome argomento. Se voglio mantenere il tipo di positioncome long, se ci sono altri modi per farlo? (qualsiasi altro modo oltre a trasmettere positiona int)?
Risposte
Se volessi farlo, dovresti costruire una classe che contenga un raggruppamento di elenchi per rappresentare i tuoi dati. Puoi scrivere il tuo metodo di accesso che divide il tuo long in int più piccoli, per accedere alla giusta posizione nella tua lista.
Vedi questa risposta: utilizzo di un indice long as ArrayList in java
Questo è un punto in cui la memoria deve essere consultata tramite l' UnsafeAPI. In caso di elenco / array maggiore di Integer.MAX_VALUE qui è il collegamento.
NOTA:
Unsafe è letteralmente pericoloso. Se quello che hai è un List<Class>, e non può essere cambiato in un altro tipo, allora non c'è niente che puoi fare oltre a convertirlo longin un int. Non c'è modo di prendere un arbitrario Liste chiamare getcon altro che un int.