Могу ли я написать sampleVideoView? = findViewById <VideoView> (R.id.videoView) в Котлине?

Следующий код из пробного проекта Kotlin, я думаю, что всегда могу написать sampleVideoView? = findViewById<VideoView>(R.id.videoView) sampleVideoView? = findViewById<VideoView>(R.id.videoView) , правильно?

И более

Код sampleVideoView?.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE)) эквивалентен if (sampleVideoView!=null){sampleVideoView.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE))} , правильно?

  class MainActivity : AppCompatActivity(){ private var sampleVideoView: VideoView? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) sampleVideoView = findViewById<VideoView>(R.id.videoView) sampleVideoView?.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE)) ... 

sampleVideoView? = findViewById (R.id.videoView)

Это недействительный синтаксис. ? используется для обозначения типов как нулевых и для безопасного доступа к переменным, содержащим эти типы с нулевым значением.

Код sampleVideoView? .setVideoURI (Uri.parse (HLS_STREAMING_SAMPLE)) эквивалентен if (sampleVideoView! = Null) {sampleVideoView.setVideoURI (Uri.parse (HLS_STREAMING_SAMPLE))}, правильно?

Правда. Но если у вас есть, например, val x = y?.getName() переменной val x = y?.getName() будет равно null или будет содержать имя y после этого. Это не просто «делать, только если != null », как может предложить ваш пример.

Вы можете вообще забыть метод findView и заменить его плагином расширения расширения kotlin

 apply plugin: 'kotlin-android-extensions' 

после этого вы можете написать:

yourVideoViewID.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE))

Ниже приведен правильный синтаксис для присваивания значения, допускающего значение NULL, для переменной с нулевым значением. Вы не нуждаетесь в вопросительном знаке при назначении

  sampleVideoView = findViewById<VideoView>(R.id.videoView) 

Второе утверждение эквивалентно

Intereting Posts
Как преобразовать исходный файл kotlin в исходный файл java Обменный код между модульными испытаниями и контрольно-измерительными тестами при использовании котлина Как создать синтаксис Kotlin DSL – DSL Kotlin Hashmap с типом данных ArrayList (Kotlin)? Многие небольшие модули или несколько больших модулей для лучшей производительности? Facebook-мессенджер для анимации чата Разрешение конфигурации «debugCompile» напрямую запрещено Исключено исключение Kotlin coroutine Kotlin: Дженерики, отражение и различие между типами T и T: Любые Как хранить данные json при использовании Android Studio 3.0? Какой самый элегантный способ удалить слушателя из списка из обратного вызова Как заставить безопасных строителей Kotlin работать в Scala? Kotlin, как объявить скованные поля с одинаковым типом данных Как использовать выражение Lamba, чтобы сделать вызовы метода Java менее подробными в Kotlin? Не удалось написать JSON: не удалось десериализовать; вложенное исключение