当前位置:编程学习 > JAVA >>

equals的用法

在应用中,常量和变量哪个在equals的前面哪个在后面,有什么区别。请具体说明...... --------------------编程问答-------------------- 我觉得没啥区别 --------------------编程问答-------------------- 我认为没什么区别! --------------------编程问答-------------------- 没有区别,如果结果是true,反过来肯定也是true,如果是false,反过来也一定是false --------------------编程问答-------------------- 常量在前,不是 null。不会 NPE。 --------------------编程问答-------------------- 常量一样
如果是object.getXXX()那就不一样了 --------------------编程问答-------------------- 基本上没啥区别,看个人习惯 --------------------编程问答-------------------- 没区别

并且,为了符合人类的阅读习惯,请把变量放在前,常量放在后。

我一直觉得,"".equals(var)是非人类喜欢的写法
--------------------编程问答-------------------- String s=null;
if(s.equals(“”)){
...
}
这样会报空指针异常,而反过来就不会报了 --------------------编程问答--------------------
引用 7 楼 goldenfish1919 的回复:
没区别

并且,为了符合人类的阅读习惯,请把变量放在前,常量放在后。

我一直觉得,"".equals(var)是非人类喜欢的写法

确认字符串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");
}
}

}

结果:
no
no1

如果把变量放在equals前面的话变量一旦是null的场合出系统错误
如果把变量放在equals后面变量就是即使是null也不会出系统错误
从结果就可以看出来 --------------------编程问答--------------------
引用 7 楼 goldenfish1919 的回复:
没区别

并且,为了符合人类的阅读习惯,请把变量放在前,常量放在后。

我一直觉得,"".equals(var)是非人类喜欢的写法

我觉得这种非人类的写法不错,人类的写易做图出空异常 --------------------编程问答--------------------
引用 7 楼 goldenfish1919 的回复:
没区别

并且,为了符合人类的阅读习惯,请把变量放在前,常量放在后。

我一直觉得,"".equals(var)是非人类喜欢的写法

我觉得非人类的写法还是比较不错的!呵呵! --------------------编程问答-------------------- 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(变量) --------------------编程问答--------------------
引用 12 楼 funfenffun 的回复:
引用 7 楼 goldenfish1919 的回复:

没区别

并且,为了符合人类的阅读习惯,请把变量放在前,常量放在后。

我一直觉得,"".equals(var)是非人类喜欢的写法

我觉得这种非人类的写法不错,人类的写易做图出空异常


你难道不觉得是否为空需要单独判断吗?
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。所有的类继承此方法的同时肯定也同样继承这些特点。更多详细特点你可以查阅帮助文档,里面说的很详细。 --------------------编程问答--------------------
引用 4 楼 huntor 的回复:
常量在前,不是 null。不会 NPE。


+1 --------------------编程问答-------------------- 常量放在前面会比较好,除非你能确认变量一定不为空。A.equal(B),如果A为null会报空指针,而B为null就不会报空指针,所以,如果变量处在A的位置的话,你还要判断一下变量是否为空。
变量在前面的正确写法:
if(变量 != null && 变量.equal(常量)) {}
变量在后面的正确写法:
if(常量.equal(变量)) {} --------------------编程问答-------------------- 本质上是没什么区别的,但是在变量在前的时候,会报空指针的异常,但如果是常量在前的话就不会出现报错的情况。我们老师在讲的时候说,常量是必须写在前面的,保证代码的正确性,否则到时候出错也不知道出在哪里,常量在前的写法可以保证百分百正确的
--------------------编程问答--------------------
引用 25 楼 leidengyan 的回复:
常量放在前面会比较好,除非你能确认变量一定不为空。A.equal(B),如果A为null会报空指针,而B为null就不会报空指针,所以,如果变量处在A的位置的话,你还要判断一下变量是否为空。
变量在前面的正确写法:
if(变量 != null && 变量.equal(常量)) {}
变量在后面的正确写法:
if(常量.equal(变量)) {}

赞同此。equals方法确保对称性…… --------------------编程问答-------------------- 推荐常量写在前面 
     if(Constant.equal(Variable))
         {syso("SUCCESS");}
     else{syso("False")}; --------------------编程问答--------------------
引用 7 楼 goldenfish1919 的回复:
没区别

并且,为了符合人类的阅读习惯,请把变量放在前,常量放在后。

我一直觉得,"".equals(var)是非人类喜欢的写法

嗯嗯 --------------------编程问答--------------------
引用 10 楼 chianfirstli 的回复:
我觉得常量在前,这样就不会有空异常

就是这个 --------------------编程问答--------------------
引用 4 楼 huntor 的回复:
常量在前,不是 null。不会 NPE。


NullPointerException空指针异常么
大神说的话一定要让人琢磨一下下才能显得牛吗,直接用通俗易懂的话说不是更好吗 --------------------编程问答--------------------
引用 18 楼 goldenfish1919 的回复:
引用 12 楼 funfenffun 的回复:

引用 7 楼 goldenfish1919 的回复:

没区别

并且,为了符合人类的阅读习惯,请把变量放在前,常量放在后。

我一直觉得,"".equals(var)是非人类喜欢的写法

我觉得这种非人类的写法不错,人类的写易做图出空异常


你难道不觉得是否为空需要单独判断吗?
if(var == null){
 ……

顶~ --------------------编程问答-------------------- 常量在前面可以减少一次变量为空的判断。 --------------------编程问答-------------------- 我觉得没区别 equals操作符在比较的时候不会因为像其他语言用==,少写一个=,导致赋值
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,