gpt4 book ai didi

java - 使用 SWIG 将 char * 类型结构的成员转换为 Java 中的 java.lang.Object

转载 作者:行者123 更新时间:2023-11-29 09:09:30 26 4
gpt4 key购买 nike

我正在尝试将 char * 类型结构的成员转换为 Java 生成类中的 java.lang.Object。我想这样做是因为我想将 Integer 和 String 类型的对象传递给它。有可能吗?

例如我有以下结构:

typedef struct Foo
{
int type;
char * data;
} Foo;

type 成员用于确定data 成员的数据类型 - Integer 或 String。

在生成的 Foo 结构的 Java 类中,我想要一个 set 方法(用于 data 成员),我可以在该方法上传递 String 和 Integer 类型的参数。在将它们传递给 set 方法之前,我可以将 String 和 Integer 对象转换为一些方便的数据类型,例如 byte[]。我只想要设置方法而不是获取方法。然后在 C 代码中,我必须根据 type 成员使用传递的 Integer 或 String 值。

最佳答案

无法直接执行您要求的操作。那是因为在 Java 中,您不能将 java.lang.Object 转换为 int 或 Integer 或 String。

也就是说,您可能需要做的是将字节数组传递给 Java,并在 Java 世界中实现一些“反序列化”函数,该函数 - 根据类型字段 - 从该字节数组生成 int 或 String .

我不知道通过 JNI 传递字节数组的实际含义。但我想这应该留给另一个问题。

关于java - 使用 SWIG 将 char * 类型结构的成员转换为 Java 中的 java.lang.Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13139855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com