簡體   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