2016-02-27 57 views
1

道歉混淆標題。我對Java沒有經驗,所以缺乏正確的術語。基本上,我試圖在Java類型(即Class)和JDBC類型(作爲字符串)之間創建一個映射。所以我試圖做這樣的事情:如何編寫不同典型Java類的實例?

private static final Map<Class, String> javaToJdbcTypeMap; 
static 
{ 
    javaToJdbcTypeMap = new HashMap<Class, String>(); 
    javaToJdbcTypeMap.put(String, "varchar"); 
    javaToJdbcTypeMap.put(Integer, "int"); 
    //etc for other common Java types 
} 

但是,字符串和整數給我的問題。 Intellij告訴我「表達預期」。而不是String我試過"".getClass(),它的工作原理,但我覺得這是可怕的風格,應該有一個簡單的方法來做到這一點。

回答

2

Mapping of JDBC Types to Java Types應該有所幫助。同時添加的「.class」得到像javaToJdbcTypeMap.put(String.class, "varchar");類並且,由於Java 7中,您可以使用Diamond Operator <>

javaToJdbcTypeMap = new HashMap<>(); 
javaToJdbcTypeMap.put(String.class, "varchar"); 
javaToJdbcTypeMap.put(Integer.class, "int"); 
+0

啊對,這就是我想要的。我知道這是明顯的。並感謝您的鏈接 - 這是我現在使用的參考:) – Drew

+0

@Drew有[其他映射](http://docs.oracle.com/javase/1.5.0/docs/guide/jdbc /getstart/mapping.html),如果找不到現有的映射,則可以實現所需的內容。 –

+0

乾杯,實際上我正在使用Amazon Redshift,並且因爲他們專注於數據倉庫優化,所以他們支持相當[數量有限的數據類型](http://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types。 HTML),所以我應該很好 - 謝謝! – Drew

相關問題