Java 类型不匹配。所需:FirebaseRecyclerAdapter<;ChatObject、ChatVoiceViewHolders>;?发现:

Java 类型不匹配。所需:FirebaseRecyclerAdapter<;ChatObject、ChatVoiceViewHolders>;?发现:,java,android,kotlin,firebase-realtime-database,firebaseui,Java,Android,Kotlin,Firebase Realtime Database,Firebaseui,我正在将一个Java代码移植到Kotlin,它抛出了一个类型未匹配错误 Java代码: private FirebaseRecyclerAdapter<ChatObject, ChatVoiceViewHolders> firebaseRecyclerAdapterChats; firebaseRecyclerAdapterChats = new FirebaseRecyclerAdapter<ChatObject, ChatVoiceViewHolders>(

我正在将一个Java代码移植到Kotlin,它抛出了一个类型未匹配错误

Java代码:

private FirebaseRecyclerAdapter<ChatObject, ChatVoiceViewHolders> firebaseRecyclerAdapterChats;
    firebaseRecyclerAdapterChats = new FirebaseRecyclerAdapter<ChatObject, ChatVoiceViewHolders>(
            ChatObject.class,
            R.layout.item_messages_video_call,
            ChatVoiceViewHolders.class,
            dbMessagingMy
    ) {}
私人FirebaseRecyclerAdapter FirebaseRecyclerAdapter聊天;
firebaseRecyclerAdapterChats=新的FirebaseRecyclerAdapter(
ChatObject.class,
R.layout.item\u消息\u视频\u呼叫,
ChatVoiceViewHolders.class,
DBMessageMy
) {}
科特林代码:

private var firebaseRecyclerAdapterChats: FirebaseRecyclerAdapter<ChatObject, ChatVoiceViewHolders>? = null
    firebaseRecyclerAdapterChats = object : FirebaseRecyclerAdapter<ChatObject?, ChatVoiceViewHolders?>(
            ChatObject::class.java,
            R.layout.item_messages_video_call,
            ChatVoiceViewHolders::class.java,
            dbMessagingMy
    ) {}
private var firebaseRecyclerAdapterChats:FirebaseRecyclerAdapter?=无效的
firebaseRecyclerAdapterChats=对象:FirebaseRecyclerAdapter(
ChatObject::class.java,
R.layout.item\u消息\u视频\u呼叫,
ChatVoiceViewHolders::class.java,
DBMessageMy
) {}
但是我的Koltin代码抛出了一个错误:

Type mismatch.
Required:
FirebaseRecyclerAdapter<ChatObject, ChatVoiceViewHolders>?
Found:
类型不匹配。
必修的:
FirebaseRecyclerAdapter?
发现:
使用提供的参数无法调用以下函数

(Class!、Int、Class!、FirebaseArray!) 其中T=ChatObject?,VH=ChatVoiceViewHolders?对于 构造函数FirebaseRecyclerAdapter(modelClass:Class!、modelLayout:Int、viewHolderClass:Class!、快照:FirebaseArray!) 在com.firebase.ui.database.FirebaseRecyclerAdapter中定义

(Class!、Int、Class!、Query!) 其中T=ChatObject?,VH=ChatVoiceViewHolders?为了 在com.firebase.ui.database.FirebaseRecyclerAdapter中定义的构造函数FirebaseRecyclerAdapter(modelClass:Class!、modelLayout:Int、viewHolderClass:Class!、ref:Query!)

还有一点,在我的Java代码中,我使用AppcompatActivity,在我的Kotlin代码中,我使用BaseActivity

我做错什么了吗? 我怎样才能解决这个问题


谢谢。

您已将变量声明为
FirebaseRecyclerAdapter
,但随后尝试将值设置为
FirebaseRecyclerAdapter

所以改变

object : FirebaseRecyclerAdapter<ChatObject?, ChatVoiceViewHolders?> {
对象:FirebaseRecyclerAdapter{
对此

object : FirebaseRecyclerAdapter<ChatObject, ChatVoiceViewHolders> {
对象:FirebaseRecyclerAdapter{
这会给您一个错误,因为Kotlin对可空性规则要求更严格。Java对此不太关心。您刚才说我声明了一个只能有非空值的变量,但之后您尝试为其分配一个可以有空值的值