gpt4 book ai didi

java - 在 JRuby 中重写重载的 Java 方法

转载 作者:行者123 更新时间:2023-11-30 04:58:38 26 4
gpt4 key购买 nike

假设我有一个像这样的 Java 类:

public class MyClass {
public void doSomething(Object o1) { }
public void doSomething(Object o1, Object o2) {}
}

请注意,有两个具有不同参数的 doSomething 方法。

在 JRuby 中,我如何子类化此类并为每个 doSomething 提供实现?有没有办法在 Java 中添加一个 shim 类来简单地将方法调用路由到具有明确名称的 ruby​​ 方法?

谢谢!

最佳答案

在 Ruby 中,同一个类中不能有多个同名方法。但是,您可能有一个带有可变参数的方法,并根据参数的数量进行调度,请查看这篇文章:http://rubylearning.com/satishtalim/ruby_overloading_methods.html

与 Dave Newton 的引用文献一起,这是正确的解决方案。 JRuby 将所有同名的 Java 方法路由到一个 Ruby 方法。您可以从那里随意发送。因此,在这种情况下,以下 Ruby 就足够了:

class MyRubyClass < MyClass

...

def doSomething(*args)
... do something with args ...
end
end

关于java - 在 JRuby 中重写重载的 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7682424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com