在定义NULL本地变量并以后将其设置为方法时,无需任何错误



i定义了变量,该变量为null,但后来基于View.Tag对象类型I必须设置它。但是它说Required Nothing found RequestCenterDetails。以下是我尝试这样做的方式

 holder?.addressIcon?.setOnClickListener {
        val tagObject = holder.institutecardView.getTag(R.id.item_institute_cardview)
        var center=null
        if(tagObject is RequestCenterDetails)
        {
            Log.d("location","-------------TEST----------- its a RequestCenter")
            center=tagObject as RequestCenterDetails // over here it say "Required Nothing found RequestCenterDetails"
        }
        else if(tagObject is Center)
        {
            Log.d("location","-------------TEST----------- its a Center")
        }

问题是,我必须基于那里的字段值采取相同的操作,但是两个对象都有不同的字段名称。有什么更好的方法吗?我是Kotlin的新手。

如果您知道 centerRequestCenterDetails,do

var center: RequestCenterDetails? = null

如果center也可以是另一种类型,请

 var center: Any? = null

您所做的事情的更简洁版本:

var center: RequestCenterdetails? = tagObject as? RequestCenterDetails

如果tagObjectRequestRecenterDetails,则分配tagObject的中心值,否则将其分配null

原因是,您的变量center具有Nothing?类型。您可以通过说:

来更改此问题
var center: Any? = null

这不建议使用这种通用类型。

您只需要指定类型,因为编译器尚不清楚,我建议您在层次结构中放置最高可能的常见类型(对于RequestCenterDetailsCenter),或者只是Any如果您可以接受任何类型:

var center: Any = null

var center: CommonBaseClass = null

相关内容

  • 没有找到相关文章

最新更新