在Java VS C中调用其参数可为null的方法#

在Java VS C中调用其参数可为null的方法#,java,c#,Java,C#,我正处于从C#到Java的过渡阶段 我记得在C#中,我们可以调用带或不带传递参数的可空方法。 例如在C中# C# 我可以这样调用上面的方法,而不用在c中传递任何参数# 如何在Java中实现它?? 在Java中,它迫使我通过传递一个参数来调用该方法,如果没有参数,它则迫使我至少传递一个null。 我这里的问题是我想编辑一个现有的方法,但是这个方法在很多地方被调用,所以我需要在很多地方编辑,这是令人沮丧的 Java public void method (Integer x){ logic

我正处于从C#到Java的过渡阶段

我记得在C#中,我们可以调用带或不带传递参数的可空方法。 例如在C中#

C#

我可以这样调用上面的方法,而不用在c中传递任何参数#

如何在Java中实现它?? 在Java中,它迫使我通过传递一个参数来调用该方法,如果没有参数,它则迫使我至少传递一个null。 我这里的问题是我想编辑一个现有的方法,但是这个方法在很多地方被调用,所以我需要在很多地方编辑,这是令人沮丧的

Java

    public void method (Integer x){
logic goes here
}

method(null);

如果不想编辑方法的现有用法,可以添加一个调用现有方法的新方法:

public void method() {
    method(null);
}

如果不想编辑方法的现有用法,可以添加一个调用现有方法的新方法:

public void method() {
    method(null);
}
您完成的C#示例如下所示:

public void method (int? x = null){ }
这意味着对方法参数
x
使用默认值
null

你能做的(有时也是)是:

public void method (Integer x){ }

public void method(){
  method(null);
}
虽然在我看来这不是最好的设计,因为传递
null
是隐式的,并且
方法()中没有参数表明实际上不需要参数。

您完成的C#示例如下所示:

public void method (int? x = null){ }
这意味着对方法参数
x
使用默认值
null

你能做的(有时也是)是:

public void method (Integer x){ }

public void method(){
  method(null);
}
虽然在我看来这不是最好的设计,因为传递
null
是隐式的,并且
方法()中没有参数表明实际上不需要参数。

您的C#示例是错误的。除非您在调用签名中为
x
提供默认值(
public void method(int?x=null)
),否则您不能在没有参数的情况下调用
public void method(int?x)
。您的C示例是错误的。除非在调用签名中为
x
提供默认值(
public void method(int?x=null)
),否则不能在没有参数的情况下调用
public void method(int?x)
)。