因此,我发现对于零个或多个,我们有3点表示法,但是对于零个或一个,有什么东西吗?
我需要更改一个方法,而不是重载它,我想知道是否存在仅允许传递零个或一个值的语法?
public void test(String sample, ObjectMapper... argOm){
ObjectMapper om = (!argOm.equals(null)?argOm:new ObjectMapper());
}
这并没有实现我期望的[]。我只想零或一。
除了更改对此的所有引用之外,重载是唯一的方法吗?
最佳答案
如果您希望编译器为您检查参数数量,则需要使用重载。不幸的是,Java没有提供默认的参数机制,该参数机制用于以其他语言建模“零或一”。
幸运的是,重载非常简单,它使您可以替换实现中的条件赋值:
public void test(String sample){
test(sample, new ObjectMapper());
}
public void test(String sample, ObjectMapper om){
if (om == null) {
throw new IllegalArgumentException("object mapper");
}
...
}
请注意,用于允许调用者不传递对象映射器的条件代码被重载替换,该重载在编译时检测到这种情况。