2011-05-01 118 views
4

如果我要實例化一個Date,我可以使用:如何用JNI實例化Java泛型?

jclass cls = (*env)->FindClass(env, "java/util/Date"); 
jmethodID ctr = (*env)->GetMethodID(env, cls, "<init>", "()V"); 
jobject obj = (*env)->NewObject(env, cls, ctr); 

但是我怎麼實例化一個ArrayList<String>

回答

7

以同樣的方式。在虛擬機級別上,沒有泛型。

4

@noise是正確的。泛型只用於確保類型安全。編譯時,編譯器會「輸入擦除」。看看這個類型擦除的更詳細的解釋:Type Erasure