package cn.test.hello;
public class IntegerTest {
/**
* @param args
*/
public static void main(String[] args) {
GetInteger ger = GetInteger.getInstance();
ger.integerTest();
}}
class GetInteger {
private GetInteger() {
}
private static GetInteger in = new GetInteger();
public static GetInteger getInstance() {
return in;
}
public void integerTest() {
Integer a = 130;
Integer b = null, sum;
for (int i = 100; i <= 140; i++) {
b = i++;
System.out.println("-------" + b);
}
if (a == b) {
sum = a + b;
}else{
System.out.println("它们没有相等------------");
}
}
}
按道理说它们不应该输出"它们没有相等",我检查了几篇,还是找不到问题,谁能告诉一下我! 作者: 陈科宇 时间: 2013-2-5 11:49
朋友,你要清楚,肯定是会输出“它们没有相等”的。a,b两个Integer变量,你对他们判定(a==b),它们肯定是不相同的。看来你还不太明白“==”的含义。只要两个变量指向同一个对象时,才返回true。而且你的代码有点乱。a=130,b=140,即使是int基本类型,也还是会输出“它们没有相等”。作者: 陈科宇 时间: 2013-2-5 11:53
public class IntegerTest {
/**
* @param args
*/
public static void main(String[] args) {
Integer a = 130;
Integer b = null, sum;
for (int i = 100; i <= 131; i++) {//我把140改成了131,这样使b最后为130
b = i++;
System.out.println("-------" + b);
}
//正确地对Integer判等应该采用如下形式
if (a.intValue() == b.intValue()) {
sum = a + b;