首页 > 解决方案 > 为什么当我从 kotlin 项目程序中调用 java 类时总是停止工作

问题描述

这是我的主要活动

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;
      }
}

它们在同一个包中

标签: javaandroid-studiokotlin

解决方案


出现问题是因为调用时未初始化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


推荐阅读