Java 方法中不必要的字符串(重载方法)

Java 方法中不必要的字符串(重载方法),java,Java,我如何制作一个不需要对象的方法,但如果有对象,它会使用它 像这样 void cls(String source){ if(source.isEmpty()){ source = "Unknown source"; } output.setText("Screen cleared from " + source); } 后来当我打电话给你时,我能做到 cls(); 但是它抛出了一个错误,因为它需要一个字符串 cls

我如何制作一个不需要对象的方法,但如果有对象,它会使用它

像这样

void cls(String source){
        if(source.isEmpty()){
            source = "Unknown source";
        }
        output.setText("Screen cleared from " + source);
    }
后来当我打电话给你时,我能做到

cls();
但是它抛出了一个错误,因为它需要一个字符串

cls("string");

但我希望两者都能发挥作用

您使用两种名称相同但签名不同的方法:

或:


您可以创建两种方法。大概是这样的:

void cls(String source) {...}

void cls() {
    return cls("Unknown source");
}

现在,您可以使用字符串参数调用cls,也可以不使用字符串参数调用cls。重载
cls
methodNote,您可能希望为方法指定不同的有意义的名称,而不是重载。@TomHawtin tackline不必如此,它看起来像是清除屏幕的常用cls命令(也在output.setText(“\uuuuuuu”)消息中注明).致最后一位编辑:在标题中添加如何重载将使问题结束。在其当前状态下,它表明OP缺乏关于如何完成此任务的知识。是相关的,可能有助于OP了解Java在单个方法定义中的可选参数方面的限制。这是可行的,但是如果我有void
cls(String-source,boolean-isAllowed){}
我希望String-source和boolean-isAllowed都是不必要的@donemanuel您可以为任意多个参数将重载方法“链接”在一起。只需让no args方法使用默认参数调用完整版本
void cls(){cls(“未知源”,false);}
或任何您想要的默认参数。
void cls(String... sources){
    if (sources.length > 0) {
        // ???
    }
}
void cls(String source) {...}

void cls() {
    return cls("Unknown source");
}