【发布时间】:2009-08-15 15:22:34
【问题描述】:
我正在尝试创建一个函数,我可以在其中传递将被放入ContentValues 的名称和值。我遇到的问题是我试图允许一次传递多个键/值对,因此键可以是字符串数组,但值必须是对象,而 ContentValues.put() 不是允许对象,它们需要被强制转换为字符串、双精度、浮点数等。有没有办法可以确定对象的类型并将其强制转换,以便调用正确的 put()?下面是一种可行的方法,但它需要我为每种可能的值类型添加一个 if。
public long create(String[] names, Object[] values) {
ContentValues initialValues = new ContentValues();
for (int i = 0; i < names.length; i++)
{
String type = values[i].getClass().getName();
if (type.equals("java.lang.Double"))
{
initialValues.put(names[i], (Double)values[i]);
}
else if (type.equals("java.lang.String")) {
initialValues.put(names[i], (String)values[i]);
}
else
{
throw new InvalidParameterException("Unable to convert type:"+type);
}
}
return mDb.insert(this.getTableName(), null, initialValues);
}
【问题讨论】:
-
我正在为 android 编写,据我所知它使用 Java5,但我是 Java 新手,我不知道如何验证。
标签: java