作为组合用户输入的Java方法重载
我目前正在处理一个电影租赁商店的阵列列表。我试图创建movieID、renterID和movieName的参数。当我运行程序时,我想让所有这些都成为一个方法,这样用户就可以输入1个、2个或所有3个参数。这是否可以通过一种方法实现/如果可以,如何实现?另外,我可以让java将空白作为null接受,而不是让用户类型为null吗?下面是我正在使用的具体代码作为组合用户输入的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
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
不能检查int和long是否为null。您必须使用包装器类。此代码无法编译。您不能
将int或long
与null
进行比较。另外,请遵循Java关于变量名的约定。@PhilippSander True,谢谢。将对其进行编辑并依靠自动装箱。@Arkadiy我认为匹配问题的样式比遵循行业惯例更重要。请查看java的命名转换。变量和参数应以小写字母开头。我将参数大写,因为字段中的属性为小写。我使用大写字母,这样就不会将实例误认为全局属性。这不正确吗?否。使用此
public void methodOverloading(String MovieName)
{
methodOverloading(null, null, MovieName);
}