通用JNI类型实例化

3

如何在C ++中实例化通用类型?

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

2个回答

4

只需实例化List即可。由于泛型在编译时被擦除,因此在运行时,这与List完全等效。


如果我的JNI方法需要返回一个Pair<Int, String>,这是否可行? - daparic

1

考虑到在Java中无法在运行时实例化泛型类型,我相信在C++中也是不可能的。

泛型是一种编译时特性。除非你想将你生成的内容作为纯文本Java代码传递给编译器,否则泛型对你来说可能没有用处。(如果你确实想这样做,我认为C++不是你最好的选择)

如果我想创建一个X为对象的List

在Java中,X是指向对象的引用类型。由于所有List的代码都只保存引用,因此代码是相同的,而且不像C++中那样有模板。这意味着你不能使用原始类型、结构体或对象,只能使用引用。


他不想实例化X,他想实例化List<X>。 - user207421

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接