Only safe or non null assserted calls are allowed on a nullable receiver type of arraylist

Android Developer picture Android Developer · Oct 30, 2017 · Viewed 30.4k times · Source

Just started using kotlin for android development.My arraylist is declared like this-

var day1: ArrayList<DietPlanDetailModel>? = null

Now I am trying to access an element by its position

    val dietPlan= day1[position]

but i am getting below compile time error-

Only safe or non null assserted calls are allowed on a nullable receiver type of arraylist

Why am i getting this error and how can i resolve it?

Answer

guenhter picture guenhter · Oct 30, 2017

The problem is, that you defined the ArrayList as nullable. You have two options here:

  1. don't define the variable nullable (this depends on your code):
var day1: ArrayList<DietPlanDetailModel> = ArrayList()
  1. access your data-structure with a null check:
val dietPlan= day1?.get(position)