当前位置: 技术问答>java相关
急!请高手指教! 我的applet从html里取得的PARAM可以用于显示,可为什么用作判断条件却不起效果??
来源: 互联网 发布时间:2015-01-06
本文导语: 代码段如下:( init()里) String HumanID=getParameter("HumanID"); String who=HumanID; System.out.println(HumanID);//控制台显示正确 System.out.println(who ); //正确 if(who=="0") w=n...
代码段如下:( init()里)
String HumanID=getParameter("HumanID");
String who=HumanID;
System.out.println(HumanID);//控制台显示正确
System.out.println(who ); //正确
if(who=="0")
w=new Manager();
else if(who=="1") w=new newFrame("我的任务") ;
//此三行原本有效现在无效
//但如果原来who是在程序立定义: String who="1" 则完全正常
我的q是12868445, mail是bwfa@263.net 敬请高手指教!!
String HumanID=getParameter("HumanID");
String who=HumanID;
System.out.println(HumanID);//控制台显示正确
System.out.println(who ); //正确
if(who=="0")
w=new Manager();
else if(who=="1") w=new newFrame("我的任务") ;
//此三行原本有效现在无效
//但如果原来who是在程序立定义: String who="1" 则完全正常
我的q是12868445, mail是bwfa@263.net 敬请高手指教!!
|
注意一下String的比较,应该是用 equals() 而不是用 == 这个操作符,因为String 是一种Object 而不是象int,long这些主类型,用==实际比较的是两个引用的值而不是引用代表的String实际内容的值。
如你在程序中定义了 String who="1",再比较 == "1"之所以会成功,是因为String是一个不变的对象,因此编译器把所有相同的字面常量(如 "1")都放在同一个地方,因此它们的引用的比较也是对的。
如你在程序中定义了 String who="1",再比较 == "1"之所以会成功,是因为String是一个不变的对象,因此编译器把所有相同的字面常量(如 "1")都放在同一个地方,因此它们的引用的比较也是对的。