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在单个方法定义中的可选参数方面的限制。这是可行的,但是如果我有voidcls(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");
}