ContentValuesに入れられる名前と値を渡すことができる関数を作成しようとしています。私が抱えている問題は、一度に複数のキー/値ペアを渡すことを許可しようとしているため、キーは文字列の配列になることができますが、値はオブジェクトでなければならず、ContentValues.put()オブジェクトを許可するには、String、Double、Floatなどにキャストする必要があります。オブジェクトの型を判別してキャストして正しいput()を呼び出す方法はありますか?以下は動作する1つのメソッドですが、可能なすべての型の値にifを追加する必要があります。オーバーロードされたメソッドのJava動的キャスト
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);
}
Java5を使用できますか? – dfa
私はアンドロイドのために書いています。私が知っている限り、Java5を使っていますが、私はJavaを初めて使い慣れているので、その確認方法はわかりません。 –