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

标签 java arraylist overloading

我目前正在处理电影出租店的数组列表。我正在尝试制作 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/

相关文章:

c++ - 为 std::ostream 重载 << 运算符

Java 9 及更高版本中的 Java Web Start 支持

java - MIB 与 Java 中的 SNMP 代理集成

java - 将动态数据插入二维字符串数组

java - 只有最后一个元素在 listView 中多次显示

c++ - 带有 std::function 参数的重载运算符

c# - 我可以定义 2 个名称相同但参数不同的委托(delegate)吗?

java - 如何在 IntelliJ IDEA 中设置多语言项目

java - Drawable V21、V24 与 hdpi、mdpi、xhdpi 等自定义文件夹。?我应该将图像放在哪个文件夹中以获得多设备支持?

java - 从仅给定一个属性的 ArrayList 中删除一个对象