Comment puis-je initialiser un statique code>, instance non modifiable de
Android .util.sparsarsarray code>
? P>
3 Réponses :
Vous ne pouvez pas faire ce que vous essayez de. Au moins, pas comment vous essayez de le faire. Il n'y a pas de mise en œuvre de Cependant, vous pouvez en créer un. Voici comment: p> remplacement Ensuite, vous avez besoin d'une méthode comme ci-dessous: p>
Enfin, implémentez votre variable statique à l'aide d'une méthode similaire à L'autre message : P>
SPARSARRAY code> non modifiable.
Customsparsarsarray
SPARSARRAY code>. Li>.
public class Test {
private static final CustomSparseArray<Integer> myArray;
static {
myArray = new CustomSparseArray<Integer>();
myArray.append(1, 1);
myArray.append(2, 5);
myArray.lock();
}
}
Boolean MLOCKED = FALSE; CODE>. LI>
public void lock() { mLocked = true; }
@Override
public void append(int key, E value) {
if (mLocked)
return; // Maybe throw an exception
super.append(key, value);
}
Ceci est exactement ce que je cherchais. Merci!
Voici un meilleur moyen d'utiliser une classe anonyme:
Cela fonctionne pour moi: selon: https://docs.oracle.com/javase/tatutorial/java/javaoo/initial.html p> p>
Vous n'initialisez pas les propriétés statiques. Qu'est-ce que vous essayez de faire exactement?
@ Arérique l'équivalent de la réponse de cette réponse Stackoverflow.com/a/507658/884677 pour une carte statique
@ Sciences oui, exactement comme je l'ai dit dans cette question et la question / réponse liée
Vous ferez mieux d'utiliser un hashmap à cette fin. J'ai essayé de résoudre le même problème.