2 回答

TA贡献1851条经验 获得超3个赞
不幸的是,java 中的方法参数没有默认值。您要么必须声明一个没有此参数的新方法,该方法将其称为“兄弟”,例如
public void methodA() {
methodA(true); // default is true
}
public void methodA(boolean param) {
// do stuff ...
或者,从 Java 8 开始,您可以使用Optional<T>类作为参数,它可以保存一个值,也可以为空(然后像默认值一样处理它)。但是你总是需要调用带有可选参数的方法,即使你想调用默认的Optional.empty()
我不是 的粉丝Optional,但是如果您有很多方法并且不想将其数量增加一倍,那么这门Optional课程对您来说可能是更好的选择。
public BottomSheetBuilder addItem(int id, @StringRes int title, @DrawableRes int icon, Optional<Boolean> add)

TA贡献1995条经验 获得超2个赞
Java 中没有默认参数。您需要做的是为每个函数创建两个版本——一个有 3 个参数,一个有 4 个。第 3 个参数一个调用第 4 个参数的第一个,第四个参数的“默认”值。真的没有捷径可走。
如果您经常这样做,您可以考虑编写一个注释解析器,该解析器可以查找注释并根据函数上注释的存在自动添加 3 个参数版本。但是,如果您知道如何编写注释解析器,那么这需要几个小时的工作,因此不值得。
添加回答
举报