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 :)