[英]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.