Java隐式重载

时间:2016-06-03 09:24:43

标签: java overloading

假设我有一个名为 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)

谢谢

2 个答案:

答案 0 :(得分:1)

Java不进行隐式转换(除了扩展数字类型的转换)。如果您正在使用自己的自定义类型,那么您可以让它们实现一个通用接口。否则,您只需咬住子弹并写出所有重载,或者让用户将它们全部转换为通用类型。

答案 1 :(得分:0)

您要订购的参数的共同属性是您必须可比较彼此。 因此,您的方法应该接受三个Comparable项,这将允许调用者传递整数(自动包装为Integers)和Strings等。

public <T> boolean order(Comparable<T> item1, Comparable<T> item2, Comparable<T> item3)