【发布时间】:2018-05-05 15:57:31
【问题描述】:
今天我正在编写一个具有两个必需参数和三个可选参数的函数。由于不赞成使用Optional<> 类型作为参数,因此函数重载一直是我处理此问题的工具。所以我最终得到了这样的结果:
public boolean func(int a, String b)
public boolean func(int a, String b, String c)
public boolean func(int a, String b, int d)
public boolean func(int a, String b, long e)
然后我必须做两个参数的各种组合......
public boolean func(int a, String b, String c, int d)
public boolean func(int a, String b, String c, long e)
public boolean func(int a, String b, int d, long e)
最后是“完整功能”
public boolean func(int a, String b, String c, int d, long e)
这对我来说似乎工作量太大,当发生这种情况时,我觉得我做错了什么。在这种情况下,为什么我应该创建 7 个附加函数而不是使用 Optional 或 POJO?处理此问题的最有效方法是什么?
【问题讨论】:
-
为什么你不能把它变成
public boolean func(int a, String b, Object... args)并检查里面的类型 -
你可能想使用这篇文章中提到的可变参数方法:stackoverflow.com/questions/965690/…
标签: java overloading optional-parameters