Javaジェネリックを使用して挿入コマンドを作成しようとしています。基本的に、addrow()関数型を安全で、さまざまなテーブルで使用できるようにしたいです。出来ますか?
これが私の現在のJavaコードです:
public <T extends List<D>, D extends Number> boolean addRow(T rowData) throws SQLiteException {
int index = 0;
for (D element : rowData) {
addRowStatement.bind(index++, element); // element must have a type part and value part
}
return addRowStatement.step();
}
addRowStatementのタイプがSQLiteStatementであり、私が理解していることから、アイテムをそれにバインドし続けることができます。
ArrayList T内のデータは、bytes、int、またはこのようなプリミティブのいずれかになります。私のコードはこれを処理します。すべてのデータをエレガントにバインドし(バインドするものがいくつあっても)、ステートメントを実行したいだけです。
具体的には、エラーは、bind()メソッドが「D」ジェネリックをどう処理するかを認識していないことです。ただし、Dジェネリックはintまたはbyteなどであることが判明します。