package workflow.fun_logic;
public interface IFunLogic {
public boolean logic(Object arg1 , Object arg2);
}
package workflow.fun_logic;
public class FunLogic_is implements IFunLogic {
public boolean logic(Object arg1, Object arg2) {
/*
将arg1,arg2还原成原类型
*/
return logic(arg1,arg2);
}
public boolean logic(String arg1, String arg2) {
if(null == arg1){return false;}
if(null == arg2){return false;}
return arg1.equals(arg2);
}
public boolean logic(Integer arg1, Integer arg2) {
if(null == arg1){return false;}
if(null == arg2){return false;}
return arg1.intValue() == arg2.intValue();
}
}
//测试
package workflow.fun_logic;
public class text {
public static void main(String[] arg){
IFunLogic obj = new FunLogic_is();
System.out.println(obj.logic("q","q"));
}
} 望不吝赐教
public interface IFunLogic {
public boolean logic(Object arg1 , Object arg2);
}
package workflow.fun_logic;
public class FunLogic_is implements IFunLogic {
public boolean logic(Object arg1, Object arg2) {
/*
将arg1,arg2还原成原类型
*/
return logic(arg1,arg2);
}
public boolean logic(String arg1, String arg2) {
if(null == arg1){return false;}
if(null == arg2){return false;}
return arg1.equals(arg2);
}
public boolean logic(Integer arg1, Integer arg2) {
if(null == arg1){return false;}
if(null == arg2){return false;}
return arg1.intValue() == arg2.intValue();
}
}
//测试
package workflow.fun_logic;
public class text {
public static void main(String[] arg){
IFunLogic obj = new FunLogic_is();
System.out.println(obj.logic("q","q"));
}
} 望不吝赐教
解决方案 »
- 关于JTree改变节点图标的问题
- 字符怎么转化数字 就是a(字符型)转化为数字1(整型)
- 有关继承中变量的问题?
- 弱弱的问一个问题,conn,rs,stmt释放资源的问题
- 求助[InvocationTargetException]
- 想问一下java写文件的细节问题,写1M数据量的int,生成的文件是多大?
- JDK 编译时的错误!帮忙解决:(
- HashMap是不是可以完全的取代HashTable?谢谢
- 一个具有最简单功能的计算器(参考core java 1)。希望大家以后能多共享源码,共同学习。
- Char类型转int类型时候,怎么才不是赋值ASCII码??
- 为什么用java读取的证书DN信息乱码?C++,C#都没有问题
- 怎样对串口终端通过GPRS形式发送过来的数据进行接收啊
我知道的是,你传了2个字符串进去,它会自动转成Object类型,这样就失去了他自己所特有的属性,当然会出错。
/*
将arg1,arg2还原成原类型
*/
return logic(arg1,arg2);
} 让一个方法调用它自身?不过希望懂的人能过来解释一下原理.我只是感觉这样是错的,但是说不出来为什么
public class Test {
public Test(Object o) {
System.out.println("1");
}
public Test(String a) {
System.out.println("2");
}
public static void main(String args[]) {
new Test("a");
}
}
答案是2
但是如果改成new Test(null);
如果两个类型,比如这里Object 和String有继承关系,按照向上原则,先匹配子类
如果没有继承关系那就完了,比如楼主的String 和Integer,因为,这个函数可以匹配2个方法,且没有任何关系,就会产生编译错误(The constructor is ambiguous)构造函数有歧义
所以最后就变成了调用自己的死递归。
public boolean logic(Object arg1, Object arg2) {
/*
将arg1,arg2还原成原类型
*/
return logic(arg1,arg2); -------------自己调用自己, 死循环
}
修改:将接口改为:
public interface IFunLogic {
public boolean logic(String arg1, String arg2);
public boolean logic(Integer arg1, Integer arg2);
} 同时在类实现接口原来的方法注释掉,其它不变,就可以了
public class FunLogic_is implements IFunLogic {
/*public boolean logic(Object arg1, Object arg2) {
return logic(arg1,arg2);
} */
....
}