S'il vous plaît ne marquez pas comme dupliquer, car la question est légèrement différente ---> NULL ne peut pas être distribuée à une kotlin.Collections de type non nulle. mutableliste strong> strong> Scènes forts >: - p> J'ai effectué un panier de suppression en utilisant RevoFit .. p> 2.Ifr cart est vide, il se bloque avec une erreur ci-dessus p> Voici mon code d'adaptateur: - p>
kotlin.TypeCastException: null cannot be cast to non-null type java.util.ArrayList<com.example.store.Cart.DataCart>
at com.example.store.Cart.AddToCart$onCreate$1.onResponse(AddToCart.kt:40)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:70)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7147)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:536)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:876)
3 Réponses :
Cochez NULL en utilisant l'opérateur Elvis de la pièce à définir dans le panier d'achat p>
La première ou la deuxième méthode semble être bonne p>
Vous ne pouvez pas trouver une raison d'utiliser mutableliste code> mais votre problème est incorrect type de type
(Databliste comme mutableliste
Cartadapter de classe (PRIVATE VAL Context: context, privé VAL DATALISTE: ArrayList
Var Dataliste: Mutaveliste
Private Val Contexte: contexte code> et
init {} code> p>
Si j'utilise la liste <> Je n'aurai pas d'accès Accès accès à la méthode RemoVeat () Code> Dans Code Si vous avez vu sous Sous TVDelete OnClickListener ....
@Wini, je veux utiliser arraylist code> pas
mutableliste code>
@Wini Post Error Log. ArrayList
posté mon activité où IM appelant recyclereview s'il vous plaît jeter un oeil
On dirait que cela peut être corrigé en changeant quelques lignes:
Catadapter accepter nullable argument puisque notre besoin de faire supprimer strong> depuis ou utiliser p> qui est plus propre et devrait fonctionner aussi. P> DATALISTE code>, puisque votre demande d'API peut renvoyer null et le transmettre causerait
NPE code >. p>
Datataliste code> est nullable et appeler
datalist.size code> peut lancer
NPE Code> Nous devons faire un appel sûr à l'aide de
? code>. Et si c'est null, nous venons de retourner 0, raconter
recyclerview code> qu'il y a 0 articles. P>
Val rétro : Liste
réponse.body () ?. Data code> peut retourner
null code>. Nous venons de convertir
rétro code> à Mutablelist à l'aide de la fonction d'extension
tomutablelist () code>, avec un opérateur d'appel sécurisé
"" code>. Si
rétro code> est
null code> alors
null code> la valeur sera transmis à
cartadapter code>, et puisque notre adaptateur traite
null Code> Valeur Il procédera sans erreurs p>
init () code> fonction de
Cartadapter code> et ajoutez
var code> (doit être
Val code>) avant les arguments du constructeur.
Init () Code> est redondant ici car vous l'utilisez pour affecter des valeurs aux variables des éléments redondants et en double. En ajoutant Var (doit être
val code>) aux arguments du constructeur, ils seront attribués des valeurs et être disponibles en tant que variables de membre, juste après la construction d'objets. P>
Datataliste CODE> est nullable et nous devons déterminer sa taille pour que l'appels sécurisée logique supplémentaire soit utilisé, et si son
null code> retour
true code> - vide p>
= ArrayListOf
L'application s'écrase avec kotlin.typecastException: NULL ne peut pas être lancé sur le type non nul Kotlin.collections.mutablelist générateurataliste (rétro comme mutabliste
Pouvez-vous supprimer complètement init {} la méthode? Cela semble un peu redondant et voyez ce qui se passe?
Si je supprimais cet init {} ... il affiche une erreur à Var Datalamiste privé: Mutablelist
Supprimer ces deux: Datataliste Var privé: Mutablelist
kotlin.kotlinnullPointereException à la ligne -> si (Datataliste? .istéty () !!) { code>
remplacer par si (Datataliste? .isempty ()?: vrai). Assertion non nulle "!!" le cause
im acceptant votre réponse ... vous donnant une prime ... mais je veux que vous modifiez votre réponse avec plus d'explication ...
D'accord. Merci! Je vais :)