可能重复:
Java中的等字符串不相等(==)?
从Eclipse的Display窗口:
messages.get(i).getMsg() == lastMsg
(boolean) false
messages.get(i).getMsg().length()
(int) 14
lastMsg.length()
(int) 14
messages.get(i).getMsg()
(java.lang.String) INSERT QUARTER
lastMsg
(java.lang.String) INSERT QUARTER
Run Code Online (Sandbox Code Playgroud)
相当新的Java.第一个陈述怎么可能是假的?我在这里错过了一些非常简单的东西吗?
在Java中比较字符串时,应该通过调用equals()方法而不是使用==运算符来实现.
该==运营商不试,如果两个对象的值或内容是一样的.它只是检查两侧的两个表达式是否==引用完全相同的对象.如果您有两个String具有相同内容但是不同对象的对象,==则会返回false.
(虽然有一个小的复杂性:编译器做了一些聪明的技巧,所以如果你使用字符串文字,==实际上会返回true).
String msg = messages.get(i).getMsg();
System.out.println(msg == lastMsg); // false
System.out.println(msg.equals(lastMsg)); // true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |