我目前正在处理电影租赁商店的数组列表。我正在尝试创建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);
}
答案 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方法收集,并且您所呈现的任何方法的调用都将由您编写的其他代码进行。
因此,
null
传递给后端而不是空白字符串。null
。