如何从JRuby调用Java嵌套抽象类上的方法



>有这个:

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解决什么,真正的问题是你没有通过它的完全限定的包名称来引用该类, 还是没有导入?

最新更新