2012-10-14 51 views
3

我有我使用它與Android平臺的sqlite數據庫。sqlite中的列類型NONE

我在運行時創建了表。我的SQL是:

CREATE TABLE funcs (id INTEGER PRIMARY KEY AUTOINCREMENT, func_name TEXT, param NONE) 

此表中的每一行都顯示我的程序中的函數調用。並且參數會爲每一行更改它的類型。該預設表

class FunctionDB 
{ 
    private ContentValues mContentValues; 

    public FunctionDB(Cursor cursor) 
    { 
     DatabaseUtils.cursorRowToContentValues(cursor, this.mContentValues); 
    } 

    public int getID() 
    { 
     return this.mContentValues.getAsInteger("id"); 
    } 

    public String getName() 
    { 
     return this.mContentValues.getAsString("func_name"); 
    } 

    public ??? getParam() 
    { 
     return this.mContentValues.getAs???("param"); 
    } 

} 

一行

還有,我已經創建的類我想,這個類是通用的函數類型。 這就是說,我想通過檢查函數的名稱來確定param列的類型。

如何在我的代碼中接收param列的通用類型?

+0

光標類已經這樣做對你的工作......然而,你可以隨時使用通用['ContentValues#得到()'](http://developer.android.com/reference/android/content /ContentValues.html#get%28java.lang.String%29)方法並將該對象轉換爲任何你想要的。 – Sam

回答

1

根據the documentation,讀取某些值的通用方法是使用get,它返回Object

+0

哇,謝謝你的快速回答! 如何在代碼中設置此列? – user1745470

+0

比我的還好。 +1 – Simon

0

我想不出一個乾淨的做法。

typeof(columnName) 

將返回數據類型爲String。

String dataType = this.typeof("param"); 

if (dataType.equalsIgnoreCase("TEXT"){ 

if (dataType.equalsIgnoreCase("INTEGER"){ 

...