【发布时间】:2013-03-01 00:50:11
【问题描述】:
我正在尝试使用 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 或其他东西。
【问题讨论】:
-
啊,我想我有预感。我正在尝试
, D extends Number> 但是我仍然需要向 bind() 方法指示 D 是什么类型的数字...但我觉得我越来越暖和了