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