我正在尝试将char *类型结构的成员转换为Java生成的类中的java.lang.Object。我想这样做是因为我想传递给它的Integer和String类型的对象。有可能吗?
例如,我有以下结构:
typedef struct Foo
{
int type;
char * data;
} Foo;
type
成员用于确定data
成员的数据类型 - 整数或字符串。
在生成的Foo结构的Java类中,我希望有一个set方法(对于data
成员),我可以在其上传递String和Integer类型的参数。我可以将String和Integer对象转换为一些方便的数据类型,例如byte [],然后将它们传递给set方法。我只想要set方法而不是get方法。然后在C代码中,我必须根据type
成员使用传递的Integer或String值。
答案 0 :(得分:0)
没有办法直接做你所要求的。那是因为在Java中你不能将java.lang.Object强制转换为int或Integer或String。
那就是说,你可能需要做的是将字节数组传递给Java,并在Java世界中实现一些“反序列化”函数,这取决于类型字段 - 从该字节数组生成一个int或一个String
通过JNI传递字节数组的实际意义我不知道。但我认为这应该留给另一个问题。