我目前正在处理电影出租店的数组列表。我正在尝试制作 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);
}
最佳答案
不,java 不允许方法参数的默认值,例如如果没有给出值则插入一个空值。这样做的方法是创建一个主实现,例如:
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);
}
关于Java 方法重载作为组合的用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26237994/