Kla*_*aus 2 java string equals
我在java教程页面上找到了这个java代码:
if ("progress" == evt.getPropertyName())
Run Code Online (Sandbox Code Playgroud)
http://download.oracle.com/javase/tutorial/uiswing/examples/components/index.html
这怎么可行?我以为我们必须使用equals()这种情况的方法(string.equals("bla"))?我们也可以equals()在这里使用吗?会更好吗?有任何想法吗?
编辑:所以IF equals()会更好,那么我真的不明白为什么一个严肃的oracle教程页面没有使用它?另外,我不明白它为什么会起作用,因为我认为字符串是一个对象.如果我说object == object,那就是一个大问题.
是的,equals()肯定会更好更正确.在Java中,字符串常量池被维护并智能地重用以提高性能.所以这可以工作,但只有当evt.getPropertyName()确保返回常量时才能保证.
此外,更正确的版本将是null "progress".equals(evt.getPropertyName()),如果evt.getPropertyName()是null.请注意,在执行char-by-char比较之前String.equals,使用==第一个测试开始实现,因此与原始代码相比,性能不会受到太大影响.
| 归档时间: |
|
| 查看次数: |
350 次 |
| 最近记录: |