gpt4 book ai didi

types - Kotlin 类型不匹配!和?

转载 作者:行者123 更新时间:2023-12-02 12:39:15 24 4
gpt4 key购买 nike

我最近刚刚开始学习 kotlin,当我将 Webrtc 版本更改为较新的版本(1.0.22920)时遇到以下问题:

 Type mismatch: inferred type is PeerConnection? but PeerConnection was expected

这是发生错误的代码部分:

val rtcConfig = PeerConnection.RTCConfiguration(iceServers)
peerConnection = peerConnectionFactory.createPeerConnection(rtcConfig, getPeerConnectionMediaConstraints(), videoPeerConnectionListener)

这很可能是由于 Webrtc 库中 createPeerConnection 变成了 @Nullable:

@Nullable
public PeerConnection createPeerConnection(RTCConfiguration rtcConfig, MediaConstraints constraints, Observer observer) {
long nativeObserver = PeerConnection.createNativePeerConnectionObserver(observer);
if (nativeObserver == 0L) {
return null;
} else {
long nativePeerConnection = nativeCreatePeerConnection(this.nativeFactory, rtcConfig, constraints, nativeObserver);
return nativePeerConnection == 0L ? null : new PeerConnection(nativePeerConnection);
}
}

尝试放置 ?和 !!在不同的地方不起作用。

我认为只是我对 kotlin 的了解不足使我无法解决问题,你能帮助我吗?

最佳答案

很可能是因为您之前已将变量声明为不可为空:

var peerConnection: PeerConnection

这意味着您无法为该变量分配@Nullable值。将其更改为:

var peerConnection: PeerConnection?

或者您可以强制返回的值非空(我不推荐),在这种情况下:

peerConnection = peerConnectionFactory.createPeerConnection(rtcConfig, getPeerConnectionMediaConstraints(), videoPeerConnectionListener)!!

注意最后的!!

关于types - Kotlin 类型不匹配!和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50186066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com