我正处于从C#向Java过渡的阶段。
我记得在 C# 中,我们可以调用带有或不传递参数的可为空的方法。 例如在 C# 中
C#
public void method (int? x){
logic goes here
}
我可以像这样调用上面的方法,而无需在 c# 中传递任何参数
method();
如何在Java中做到这一点?? 在 Java 中,它迫使我通过传递参数来调用该方法,如果没有参数,它迫使我至少传递一个 null。 我在这里的问题是我想编辑一个现有方法,但是在很多地方都调用了此方法,所以我需要在很多地方进行编辑,这很令人沮丧。
爪哇岛
public void method (Integer x){
logic goes here
}
method(null);
如果不想编辑方法的现有用法,可以添加一个调用现有方法的新方法:
public void method() {
method(null);
}
完整的C# 示例如下所示:
public void method (int? x = null){ }
这意味着对方法参数x
使用默认值null
。Java 不支持缺省参数值。
相反,您可以做的(有时也会这样做(是:
public void method (Integer x){ }
public void method(){
method(null);
}
虽然在我看来这不是最好的设计,因为传递null
是隐含的,并且method()
中没有参数表明实际上不需要参数。