jni4net:如何将Map作为参数传递给Java的C#方法?

时间:2015-06-05 11:09:17

标签: java c# java-native-interface jni4net

我正在尝试在我的Java程序中使用jni4net来调用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或string值作为参数的方法没有问题,但我也有一个C#方法,该方法将Dictionary<string, int>对象作为参数,我不知道如何在Java中创建它代码。

Currenlty我有以下代码:

// 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 个答案:

没有答案