通用JNI类型实例化

时间:2013-01-16 11:16:27

标签: java c++ generics java-native-interface

如何在c ++中实例化泛型类型?

如果我想创建一个List<X>,其中X是对象。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

只是实例化List。由于Generics被编译器擦除,因此它在运行时完全等同于List。

答案 1 :(得分:0)

鉴于您无法在Java中在运行时实例化泛型类型,我很确定您无法在C ++中实现它。

泛型是一个编译时功能。除非你想将你生成的内容传递给编译器,例如作为文本中的普通Java代码,泛型不太可能对您有用。 (如果你确实想这样做,我怀疑C ++不是你最好的选择)

  

如果我想创建一个X是对象的列表

在Java中X是一种对象的引用。由于所有列表中的代码仅包含引用,因此代码是相同的,并且不像C ++中那样进行模板化。这意味着您不能使用基元或结构或对象,只能使用引用。