equals的用法 在应用中,常量和变量哪个在equals的前面哪个在后面,有什么区别。请具体说明...... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有区别,如果结果是true,反过来肯定也是true,如果是false,反过来也一定是false 常量在前,不是 null。不会 NPE。 常量一样如果是object.getXXX()那就不一样了 没区别并且,为了符合人类的阅读习惯,请把变量放在前,常量放在后。我一直觉得,"".equals(var)是非人类喜欢的写法 String s=null;if(s.equals(“”)){ ... }这样会报空指针异常,而反过来就不会报了 确认字符串var不是null,可以 var.isEmpty() public class Test { /** * @param args */ public static void main(String[] args) { String s = null; // 1 if ("1".equals(null)) { System.out.println("ok"); } else { System.out.println("no"); } try { // 2 if (s.equals("1")) { System.out.println("ok1"); } } catch (Exception e) { System.out.println("no1"); } }}结果:nono1如果把变量放在equals前面的话变量一旦是null的场合出系统错误如果把变量放在equals后面变量就是即使是null也不会出系统错误从结果就可以看出来 public class Test{ public static void main(String args[]) { String str1=null; /*比如说长电是‘FIRST’*/ /*1、以前都是先判断str1等不等于null,然后equals*/ if(null!=str1&&"FIRST".equals(str1)) { System.out.println("str1和FIRST相等"); } else { System.out.println("str1和FIRST不相等"); } /*2、看了大家的回复感觉null!=str1都没必要写了*/ if("FIRST".equals(str1)) { System.out.println("str1和FIRST相等"); } else { System.out.println("str1和FIRST不相等"); } }} public class Test{ public static void main(String args[]) { String str1=null; /*比如说长电是‘FIRST’*/ /*1、以前都是先判断str1等不等于null,然后equals*/ if(null!=str1&&"FIRST".equals(str1)) { System.out.println("str1和FIRST相等"); } else { System.out.println("str1和FIRST不相等"); } /*2、看了大家的回复感觉null!=str1都没必要写了*/ if("FIRST".equals(str1)) { System.out.println("str1和FIRST相等"); } else { System.out.println("str1和FIRST不相等"); } }} null!==变量&&常量.equals(变量) 你难道不觉得是否为空需要单独判断吗?if(var == null){ doXXX}else if(var.euquals("")){//这里会有空指针吗? doXXX}有时候不需要单独判断的时候:if(var == null || var.equals("")){//请问空指针是哪里来的? doXXX} 空指针也是一种判断的分支,但是常量在前,就相当于你把null这种情况给省略了,有时候这么做是不对的 equals()方法,它的特点之一就是对称性,也就是x.equals(y)返回结果为true,那y.equals(x)返回结果也为true。所有的类继承此方法的同时肯定也同样继承这些特点。更多详细特点你可以查阅帮助文档,里面说的很详细。 常量放在前面会比较好,除非你能确认变量一定不为空。A.equal(B),如果A为null会报空指针,而B为null就不会报空指针,所以,如果变量处在A的位置的话,你还要判断一下变量是否为空。变量在前面的正确写法:if(变量 != null && 变量.equal(常量)) {}变量在后面的正确写法:if(常量.equal(变量)) {} 赞同此。equals方法确保对称性…… 推荐常量写在前面 if(Constant.equal(Variable)) {syso("SUCCESS");} else{syso("False")}; NullPointerException空指针异常么大神说的话一定要让人琢磨一下下才能显得牛吗,直接用通俗易懂的话说不是更好吗 我觉得没区别 equals操作符在比较的时候不会因为像其他语言用==,少写一个=,导致赋值 一个javaScript问题 求一个简单正则表达式 java 新手的困扰 希望高手指点 java聊天室注册与登录的详细过程 弱问 JAVA集合问题 jsp 如何,用正则表达式。获取<img src=0.gif>中的0.gif?????????? 怎样弹出一个对话框,并输入参数? 关于message提示框的问题!! 如何让JCOMBOBOX有聚焦事件? 盗梦空间之JavaSwing+derby通讯录 JAVA程序报错:无法解析导入
如果是object.getXXX()那就不一样了
if(s.equals(“”)){
...
}
这样会报空指针异常,而反过来就不会报了
* @param args
*/
public static void main(String[] args) { String s = null;
// 1
if ("1".equals(null)) {
System.out.println("ok");
} else {
System.out.println("no");
}
try {
// 2
if (s.equals("1")) {
System.out.println("ok1");
}
} catch (Exception e) {
System.out.println("no1");
}
}}结果:
no
no1如果把变量放在equals前面的话变量一旦是null的场合出系统错误
如果把变量放在equals后面变量就是即使是null也不会出系统错误
从结果就可以看出来
{
public static void main(String args[])
{
String str1=null;
/*比如说长电是‘FIRST’*/
/*1、以前都是先判断str1等不等于null,然后equals*/
if(null!=str1&&"FIRST".equals(str1))
{
System.out.println("str1和FIRST相等");
}
else
{
System.out.println("str1和FIRST不相等");
}
/*2、看了大家的回复感觉null!=str1都没必要写了*/
if("FIRST".equals(str1))
{
System.out.println("str1和FIRST相等");
}
else
{
System.out.println("str1和FIRST不相等");
}
}
}
{
public static void main(String args[])
{
String str1=null;
/*比如说长电是‘FIRST’*/
/*1、以前都是先判断str1等不等于null,然后equals*/
if(null!=str1&&"FIRST".equals(str1))
{
System.out.println("str1和FIRST相等");
}
else
{
System.out.println("str1和FIRST不相等");
}
/*2、看了大家的回复感觉null!=str1都没必要写了*/
if("FIRST".equals(str1))
{
System.out.println("str1和FIRST相等");
}
else
{
System.out.println("str1和FIRST不相等");
}
}
}
你难道不觉得是否为空需要单独判断吗?
if(var == null){
doXXX
}else if(var.euquals("")){//这里会有空指针吗?
doXXX
}
有时候不需要单独判断的时候:
if(var == null || var.equals("")){//请问空指针是哪里来的?
doXXX
}
变量在前面的正确写法:
if(变量 != null && 变量.equal(常量)) {}
变量在后面的正确写法:
if(常量.equal(变量)) {}
if(Constant.equal(Variable))
{syso("SUCCESS");}
else{syso("False")};
NullPointerException空指针异常么
大神说的话一定要让人琢磨一下下才能显得牛吗,直接用通俗易懂的话说不是更好吗