等回报错误.这段代码出了什么问题?

mrh*_*nds -4 java

我有java语法.索里我还是不明白为什么会这样.

public class TestString {
  public static void main(String [] args){
    int i=-1;
    String a=((Object)i).toString();
    if(a=="-1"){
        System.out.println("Same");
    }else{
        System.out.println("Not");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后结果是"不"问题为什么-1字符串与对象中的-1 int不同?

Sur*_*tta 5

你必须使用.equals()字符串来比较.

String以相同的方式覆盖了相同的方法.

尝试

public class TestString {
  public static void main(String [] args){
    int i=-1;
    String a=((Object)i).toString();
    if(a.equals("-1")){
        System.out.println("Same");
    }else{
        System.out.println("Not");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)