从Jruby中的Jar文件访问枚举

时间:2015-11-09 14:03:16

标签: java enums jruby jruby-java-interop

我试图访问以下静态枚举

public class Colors
{
    public enum ListofColors 
    {
        BLUE, RED, YELLOW
    }
}

但我一直收到错误

NameError: cannot load Java class Colors.Colors::ListofColors::BLUE

当我尝试以下操作时:

CL = JavaUtilities.get_proxy_class('Colors.Colors::ListofColors::BLUE')

然后我尝试了以下内容:

CL = JavaUtilities.get_proxy_class('Colors.Colors')
red = Colors.Colors::ListofColors::RED

它给了我以下错误:

NameError: uninitialized constant Colors

是否有不同的方法从jar文件中获取此静态枚举并将其包含在Jruby中而不会获得该errpr?

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你需要package :: class,你重复了两次

另见

https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby

弄清楚java_import是否可以帮助你{{3}}

此外,您似乎没有使用变量CL,请尝试使用

CL :: ListofColors ::蓝