繁体   English   中英

从 java 类调用 kotlin 函数会产生错误

[英]Calling kotlin function from java class creates error

我正在尝试从 Java 类调用 kotlin 类函数,但出现错误。 我在 java 类中添加了 kotlin 和 java 代码。 下面是代码,我在使用上下文时遇到错误。

Kotlin 类:

class TestDatabaseHandler(var context: Context?) :
    SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION)

{
    fun insertSerialNo(serialno: String)
    {
        val db=this.writableDatabase
        var cv=ContentValues()
    }
}

Java类:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String serialno =123456;
        Intent intent = new Intent(MainActivity.this, Test.class);
        intent.putExtra("serialno", serialno);

        //Below Four lines of Code Error in JavaClass
        var db= TestDatabaseHandler(this.applicationContext)
        db.insertSerialNo(serialno)
        //Java Conversion
        String db= new TestDatabaseHandler(this.context);
        db.insertSerialNo(serialno);

        startActivity(intent);

    }
}

错误:

1) 找不到符号上下文

2) 无法解析方法 insertSerialNo

//Below Four lines of Code Error in JavaClass
var db= TestDatabaseHandler(this.applicationContext)
db.insertSerialNo(serialno)
//Java Conversion
String db= new TestDatabaseHandler(this.context);
db.insertSerialNo(serialno);

不算评论:

前两行在 Kotlin 中。 Java 没有var语法,创建新实例需要new关键字。 删除这些行。

后两行是上面 Kotlin 行的正确 Java 语法。 但是,没有Activity.context这样的东西。 Activity 已经是一个 Context。 只需传递this ,而不是this.context

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM