3 回答

TA貢獻1780條經驗 獲得超5個贊
我們在 C++/Java 集成方面做了很多工作。跨邊界傳遞復雜數據結構的問題是您必須編組方法調用,這可能是一項非常復雜且容易出錯的工作。我發現做這樣的事情要容易得多:
在 Java 端,使用 gson 或 jackson 將您的地圖序列化為 JSON
越界傳遞 JSON 字符串
在 C++ 端將 JSON 反序列化為 std::map
我對 C++ 方面不太熟悉,但我看到這里解決了類似的問題

TA貢獻1824條經驗 獲得超8個贊

TA貢獻1884條經驗 獲得超4個贊
您可以使用scapix::link::java C++ JNI 庫在許多 C++ 和 Java 類型之間自動轉換。這是一個例子:
#include <scapix/java_api/java/lang/System.h>
#include <scapix/java_api/java/util/Locale.h>
#include <scapix/java_api/java/text/DateFormatSymbols.h>
using namespace scapix::link::java;
using namespace scapix::java_api;
void test1()
{
// C++ objects are automatically converted to and from corresponding Java types.
// This works for any type supported by scapix::link::java::convert() interface,
// which supports many STL types and can be extended for your own types.
std::string version = java::lang::System::getProperty("java.version");
std::vector<std::string> languages = java::util::Locale::getISOLanguages();
std::vector<std::vector<std::string>> zone_strings = java::text::DateFormatSymbols::getInstance()->getZoneStrings();
std::map<std::string, std::string> properties = java::lang::System::getProperties();
}
添加回答
舉報