我正在尝试使用 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 中的数据可以是字节、整数或类似这样的原语。我的代码处理这个。我只想优雅地绑定所有数据(无论要绑定多少东西)并执行语句。
具体来说,错误是 bind() 方法不知道如何处理“D”泛型——即使 D 泛型将变成一个 int 或 byte 或其他东西。