jni4net: Как передать Map как параметр в метод C# из Java?

Я пытаюсь использовать jni4net в моей программе Java для вызова методов из C# Библиотека.dll.

Bridge.setVerbose(true);
Bridge.init(new File("jni4net.n.w64.v40-0.8.8.0.dll").getAbsoluteFile());

Bridge.LoadAndRegisterAssemblyFrom(new File("BridgeDemoLibrary.j4n.dll"));

System.out.println();

MyGenerator myGenerator = new MyGenerator();
int result = myGenerator.add(2, 4);

Это нормально для методов с int или строковыми значениями в качестве параметров, но у меня также есть C# метод, который принимает Dictionary<string, int> объект в качестве параметра, и я не знаю, как создать его в моем коде Java.

У меня есть следующий код:

// using generic objects doesn't seem to be supported yet...
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("Java", 1);
map.put("C#", 2);
map.put("Ruby", 3);

myGenerator.generate_id("10", map);

Этот код не работает, потому что сгенерированный generate_id() метод ожидает system.Object (который является классом от jni4net) в качестве второго параметра.

Так как я могу конвертировать мои HashMap к system.Object?

С уважением:)

0 ответов

Другие вопросы по тегам