如何从 JNI 返回枚举 [英] how to return enum from JNI

查看:25
本文介绍了如何从 JNI 返回枚举的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Java中我有:

public class MyClass{

    public enum STATUS {
        ZERO,
        ONE ,
        TWO
    }

    public native STATUS nativeGetStatus();

    ...

    private STATUS state = nativeGetStatus(); //returns enum
    private STATUS state2 = nativeGetStatus(); //returns enum 

}

我希望本地方法nativeGetStatus"返回这个枚举值.

I want native method 'nativeGetStatus' to return this enum value.

JNI 返回整数并与 java 中的枚举值进行比较是一个选项,但想知道是否可以通过 jobject 返回值并将其直接分配给 state ?如果是,如何?

JNI returning integer and comparing with value of enum in java is an option, but was wondering is it possible to return value via jobject and assign it directly to state ? if yes how?

推荐答案

当然可以.Enum 值是 Enum 类的公共静态字段,因此您可以使用 this 官方手册编写代码.只需从 JNI 获取字段并将其作为作业返回即可.

Of course, you can do it. Enum values are public static fields of Enum class, so you can use this official manual to write the code. Just get the field from JNI and return it as jobject.

这篇关于如何从 JNI 返回枚举的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆