有这个:
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/