overload的一点思考

仅参数类型不同的重载方法,使用过程的一个困惑:

有没有必要使用instanceof方法?

package overload.special;

public class OverLoadTest {

	public void test(Object obj){
System.out.println("Object:"+obj);
} public void test(Integer integer){
System.out.println("Integer:"+integer);
} public void test(int int1){
System.out.println("int:"+int1);
} public void test(String str){
System.out.println("String:"+str);
} public static void main(String[] args) {
OverLoadTest ot=new OverLoadTest();
ot.test(1); Integer object_int=new Integer(1);
ot.test(object_int); Object obj=object_int;
ot.test(obj); ot.test("1");
}
}

overload的一点思考

优先级:
基本类型>对象
对象中 子类>父类,
其中Object类的优先级最低

http://shmilyaw-hotmail-com.iteye.com/blog/1447631

package overload.special;

public class OverLoadTest {

	public void test(Object obj){
System.out.println("Object:"+obj);
} public void test(Integer integer){
System.out.println("Integer:"+integer);
} public void test(int int1){
System.out.println("int:"+int1);
} public void test(String str){
System.out.println("String:"+str);
} public static void main(String[] args) {
OverLoadTest ot=new OverLoadTest();
ot.test(1); Integer object_int=new Integer(1);
ot.test(object_int); Object obj=object_int;
if (obj instanceof Integer) {
ot.test(object_int);
}else {
ot.test(obj);
} ot.test("1");
}
}

overload的一点思考

上一篇:RESTful Web 服务:教程


下一篇:高并发下,log4j日志打印行数导致的内存溢出问题