日期:2014-05-20  浏览次数:20791 次

初学者一个小问题,想不通
编一个计算的小程序,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”)表示的才是内容相等 像楼上的那样改就对了