почему когда я вызываю Java-класс из программы проекта Kotlin всегда перестать работать - PullRequest
0 голосов
/ 06 ноября 2018

Это моя основная активность

class MainActivity : AppCompatActivity() {

      override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
         lateinit var maT : mat
         var num : Int = maT.two()
      }
}

А это мой класс Java

public class mat {

      public int two(){
        return 2;
      }
}

Они в одной упаковке

1 Ответ

0 голосов
/ 06 ноября 2018

Проблема возникает из-за того, что свойство maT не было инициализировано при вызове

maT.two()

В документации для lateinit указано:

Доступ к свойству lateinit до его инициализации вызывает специальное исключение, которое четко определяет свойство, к которому осуществляется доступ, и тот факт, что оно не было инициализировано.

Чтобы решить проблему, попробуйте:

class MainActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
     super.onCreate(savedInstanceState)
     setContentView(R.layout.activity_main)
     var maT = mat()
     var num : Int = maT.two()
  }
}

Внесенное изменение заключалось в удалении lateinit и создании объекта типа mat :

var maT = mat()

К вашему сведению: вы должны рассмотреть вопрос об использовании заглавных букв в начале класса, например Mat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...