我们能够用C#代码调用Java,并能够将字符串和整数作为方法参数传递。可以直接使用java java.lang.String和java.lang.Integer来访问字符串,而不会出现问题。 但是,当我们将C#自定义对象作为方法参数传递时,我们找不到访问它的方法。 例如:Employee.cs是带有参数名称的C#类。 使用proxygen创建EmployeeLibraray.dll,EmployeeLibraray.j4n.dll和EmployeeLibraray.j4n。
我们试图传递C#对象的C#代码
var bs = new BridgeSetup();
bs.AddAllJarsClassPath("./");
Bridge.CreateJVM(bs);
Bridge.RegisterAssembly(typeof(JavaTest).Assembly);
JavaTest obj = new JavaTest(); ================================> JavaTest
is the class generated using proxygen where it is called in C#
EmployeeLibraray.Employee e = new EmployeeLibraray.Employee();
===========> Custom C# object to be passed to Java
e.LoginName = "test";
obj.execute( e);
Java代码
public void execute(system.Object inputObj) throws Exception {
}
我们应该如何将inputObj强制转换为Employee,以便可以直接访问e.getName()。