作为组合用户输入的Java方法重载

作为组合用户输入的Java方法重载,java,arraylist,overloading,Java,Arraylist,Overloading,我目前正在处理一个电影租赁商店的阵列列表。我试图创建movieID、renterID和movieName的参数。当我运行程序时,我想让所有这些都成为一个方法,这样用户就可以输入1个、2个或所有3个参数。这是否可以通过一种方法实现/如果可以,如何实现?另外,我可以让java将空白作为null接受,而不是让用户类型为null吗?下面是我正在使用的具体代码 public void methodOverloading(int MovieID, long RenterID) { System.o

我目前正在处理一个电影租赁商店的阵列列表。我试图创建movieID、renterID和movieName的参数。当我运行程序时,我想让所有这些都成为一个方法,这样用户就可以输入1个、2个或所有3个参数。这是否可以通过一种方法实现/如果可以,如何实现?另外,我可以让java将空白作为null接受,而不是让用户类型为null吗?下面是我正在使用的具体代码

public void methodOverloading(int MovieID, long RenterID)

{
    System.out.println();

    this.printMovieInforForMovieID(MovieID);
    this.printMovieInforForRenterID(RenterID);
}

public void methodOverloading(int MovieID, String MovieName)
{
    System.out.println();

    this.printMovieInforForMovieID(MovieID);
    this.printMovieInforForMovieNameContaining(MovieName);
}

public void methodOverloading(long RenterID)
{
    System.out.println();

    this.printMovieInforForRenterID(RenterID);
}

public void methodOverloading(long RenterID, String MovieName)
{
    System.out.println();

    this.printMovieInforForRenterID(RenterID);
    this.printMovieInforForMovieNameContaining(MovieName);
}

public void methodOverloading(String MovieName)
{
    System.out.println();

    this.printMovieInforForMovieNameContaining(MovieName);
}

此方法接受所有3个参数,并且仅当其值不为null时才会调用print方法。

否,java不允许方法参数的默认值,例如,如果没有给定值,则插入null。方法是创建一个主实现,例如:

public void methodOverloading(Integer MovieID, Long RenterID, String MovieName)
{
    System.out.println();

    if (MovieID != null) {
        this.printMovieInforForMovieID(MovieID);
    }
    if (RenterID!= null) {
        this.printMovieInforForRenterID(RenterID);
    }
    if (MovieName!= null) {
        this.printMovieInforForMovieNameContaining(MovieName);
    }
}
然后是一系列简短的方法,它们只需要向主程序调用:

public void methodOverloading(String MovieName)
{
    methodOverloading(null, null, MovieName);
}

程序的用户不会调用这些方法中的任何一种。他提供的任何输入都将由您编写的某个GUI控件或I/O方法收集,对您提供的任何方法的调用都将由您编写的其他代码进行

因此,

  • 在将用户的输入传递给执行该工作的方法之前,您可以按自己喜欢的方式对其进行按摩。特别是,如果用户提供一个空白值,那么您的代码可以将相应的<代码> null <代码>传递到后端而不是空白字符串。
  • 如果存在保证无效的参数值,则可以使用它们来表示缺少用户输入。例如,如果您可以依赖所有有效的电影和租用者ID为正,则这些参数可以传递-1以表示用户未提供值。将参数设置为对象类型将允许您为此使用
    null
  • 方法重载似乎对您没有任何帮助

  • 不能检查int和long是否为null。您必须使用包装器类。此代码无法编译。您不能
    int或
    long
    null
    进行比较。另外,请遵循Java关于变量名的约定。@PhilippSander True,谢谢。将对其进行编辑并依靠自动装箱。@Arkadiy我认为匹配问题的样式比遵循行业惯例更重要。请查看java的命名转换。变量和参数应以小写字母开头。我将参数大写,因为字段中的属性为小写。我使用大写字母,这样就不会将实例误认为全局属性。这不正确吗?否。使用
    public void methodOverloading(String MovieName)
    {
        methodOverloading(null, null, MovieName);
    }