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

时间:2014-10-07 14:08:30

标签: java arraylist overloading

我目前正在处理电影租赁商店的数组列表。我正在尝试创建movieID,renterID和movieName的参数。我想在运行程序时制作所有这些方法,因此用户可以输入1或2或所有这3个参数。这可以通过一种方法/如果是这样做,怎么做?另外,我可以将其作为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 个答案:

答案 0 :(得分:2)

不,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);
}

答案 1 :(得分:1)

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);
    } 
}

此方法接受所有3个参数,并且只有在其值不为空时才调用print方法。

答案 2 :(得分:0)

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

因此,

  1. 您可以按照自己喜欢的方式按摩用户的输入,然后再将其移至执行工作的方法。特别是,如果用户提供空白值,那么您的代码可以将相应的null传递给后端而不是空白字符串。
  2. 如果存在保证无效的参数值,则可以使用它们来指示缺少的用户输入。例如,如果您可以依赖所有有效的电影和租借者ID,那么您可以为这些参数传递-1,以表示用户未提供值。使参数成为对象类型将允许您为此目的使用null
  3. 方法重载似乎没有对您有用。