我曾经有过这个
public constructor_name() {
this(param)
}
public constructor_name(int param) {
this.param = param
}
在Java中使用ruby,我们有这种自引用构造函数吗?
答案 0 :(得分:12)
由于Ruby是一种动态语言,因此您不能拥有多个构造函数(或者就此而言构造函数链接)。例如,在以下代码中:
class A
def initialize(one)
puts "constructor called with one argument"
end
def initialize(one,two)
puts "constructor called with two arguments"
end
end
您可能希望有2个具有不同参数的构造函数。但是,评估的最后一个将是类的构造函数。在这种情况下initialize(one,two)
。
答案 1 :(得分:9)
那些不是有效的Java,但我认为你得到的是你想要一个可选的参数。在这种情况下,您可以只为参数赋予默认值
def initialize(param=9999)
...
end
或者您可以使用splat参数:
def initialize(*params)
param = params.pop || 9999
end