读书人

菜鸟一个小疑点想不通

发布时间: 2012-04-03 12:38:19 作者: rapoo

初学者一个小问题,想不通
编一个计算的小程序,TextField tf14 = new TextField("MAX_VALUE")
如果没改这个值,就设为无穷大,若改了就读出新的值到 x1ub

if (tf14.getText() == "MAX_VALUE") {
System.out.println("1");
x1ub = Double.MAX_VALUE;

} else {
System.out.println("2");
x1ub = Double.parseDouble(tf14.getText());

}
为什么tf14中的值没改(还是MAX_VALUE),而输出2,也就是到了else里面?

[解决办法]
楼主,测试完毕,输出1。
package group;

import java.awt.TextField;

public class g {
public static void main(String[] args){
TextField tf14 = new TextField("MAX_VALUE");

if (tf14.getText() == "MAX_VALUE") {
System.out.println("1");
//x1ub = Double.MAX_VALUE;

} else {
System.out.println("2");
//x1ub = Double.parseDouble(tf14.getText());

}

}
}
[解决办法]
if (tf14.getText() == "MAX_VALUE")
改成
if (tf14.getText().equals("MAX_VALUE"))
[解决办法]
if 中的== 表示两个地址相等 而非内容相等 xxx.equals(“xxxx”)表示的才是内容相等 像楼上的那样改就对了

读书人网 >J2SE开发

热点推荐