java - 如何从 JRuby 调用 Java 嵌套抽象类的方法?

标签 java ruby jruby

有这个:

public abstract class A {

    public abstract static class B {

        public static void greet() {
            System.out.println("Hey");
        }

    }

}

你可以用 Java 来做,

A.B.greet();

但是在 JRuby 中,我该如何调用它呢?我试过了

A::B.greet

但是它找不到greet()方法。

最佳答案

A::B 解析为什么?我在 JRuby 1.6.4 和 1.7.9 中尝试了您的代码(只是为了看看最近是否有任何行为发生了变化),并且运行良好。

由于 A 类不在包中(当然,它可能在您的真实代码中),因此我必须将其称为 Java::A::B 并将该方法调用为 Java::A::B.greet,这就是为什么我问 A::B 解析为什么,可能是这样真正的问题是您没有通过完全限定的包名称来引用该类,或者还没有导入它?

关于java - 如何从 JRuby 调用 Java 嵌套抽象类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20949678/

相关文章:

ruby - 如何测试和记录带有某些 C 扩展的 gem 的 JRuby 兼容性

java - Spring jpa spring.jpa.hibernate.ddl-auto :create ORA-02000: missing ALWAYS keyword

java - JComponent 脱离效果

ruby-on-rails - 通过 Rails 中的 link_to 更新字段

c - 我熟悉 Ruby/DL,但不确定如何使用具有返回参数指针的 C 函数调用

ruby - 了解Ruby的repeated_permutation方法的源代码

Java - 扩展一个类并重用这些方法?

Java CSV 格式问题

ruby - 使用 rvm 安装 ruby​​ 头文件

ruby-on-rails - ruby NoMethodError : undefined method `messages' for []:Array