変数 rowNum が文字列ではなく int であるにもかかわらず、以下のコードが正しく機能するのはどうしてですか? これはどのように可能ですか、またはここで何が起こっていますか?
文字列が文字列選択変数に割り当てられると、int rowNum 変数は自動的に文字列に変換されますか?
public String getTableString(int rowNum){
String tableString = "";
String[] columns = new String[]{TABLE_STRING};
String selection = _ID + " = '" + rowNum + "';";
Cursor cursor = sqLiteDatabase.query
(MYDATABASE_TABLE, columns, selection, null, null, null, null);
この場合、なぜ Integer.toString() を使用する必要がなく、それでも機能するのですか?
通常のルールでは、String 選択変数に割り当てる前に Integer.toString() メソッドを使用して rowNum を String に変換する必要があります。
基本的にコードが示されているように、文字列に int を貼り付けて、それを String 変数に割り当てています。これは間違っています。これはクラス キャスト例外である必要があります。