假设我有一个名为 order ()的方法,它接收3个参数(arg0,arg1,arg2)并确定arg0< arg1< ARG2。我希望这个方法能够处理整数和字符串。我该如何执行重载?而不是声明:
1. order(int, int, int)
2. order(int, String, int)
3. order(int, int, String)
4. order(int, String, String)
5. order(String, int, int)
6. order(String, String, int)
7. order(String, int, String)
8. order(String, String, String)
谢谢
答案 0 :(得分:1)
Java不进行隐式转换(除了扩展数字类型的转换)。如果您正在使用自己的自定义类型,那么您可以让它们实现一个通用接口。否则,您只需咬住子弹并写出所有重载,或者让用户将它们全部转换为通用类型。
答案 1 :(得分:0)
您要订购的参数的共同属性是您必须可比较彼此。
因此,您的方法应该接受三个Comparable
项,这将允许调用者传递整数(自动包装为Integers
)和Strings
等。
public <T> boolean order(Comparable<T> item1, Comparable<T> item2, Comparable<T> item3)