"1".equals和a.equals("1")的区别
时间: 2023-10-16 20:03:52 浏览: 201
"1".equals 和 a.equals("1") 的区别在对象的调用方。
"1".equals 是将字符串字面值 "1" 作为调用方,调用 String 类的 equals 方法。这种写法是比较安全的,即使 "1" 为 null,也不会抛出空指针异常。
而 a.equals("1") 是将变量 a 作为调用方,调用它所引用对象的 equals 方法。这种写法要注意,如果变量 a 为 null,会抛出空指针异常。因此,在使用变量的 equals 方法之前,需要确保变量不为 null 或进行 null 判断。
相关问题
优化 这段代码 if(("aaa".equals(a) && !"bbb".equals(b) && !"ccc".equals(b))||("ddd".equals(a) && "eee".equals(b))){String c = "1";}
&& "bbb".equals(b)) || ("ccc".equals(a) && "ddd".equals(b))),有什么好的建议吗?
针对这段代码的优化建议是使用 switch case 语句来代替 if else,可以提高代码的可读性和性能。例如:
```
switch (a) {
case "aaa":
if ("bbb".equals(b)) {
// do something
}
break;
case "ccc":
if ("ddd".equals(b)) {
// do something
}
break;
default:
break;
}
```
此外,也可以考虑使用 HashMap 来存储可选值和对应的操作,以减少代码量和提高可扩展性。
public static String wuxing(String gzYear, String gzMonth, String gzDay, String gzTime) { // 天干年 String gYear = gzYear.substring(0, 1); if ("甲".equals(gYear) || "乙".equals(gYear)) { gYear = "木"; } if ("丙".equals(gYear) || "丁".equals(gYear)) { gYear = "火"; } if ("戊".equals(gYear) || "己".equals(gYear)) { gYear = "土"; } if ("庚".equals(gYear) || "辛".equals(gYear)) { gYear = "金"; } if ("壬".equals(gYear) || "癸".equals(gYear)) { gYear = "水"; } // 天干月 String gMonth = gzMonth.substring(0, 1); if ("甲".equals(gMonth) || "乙".equals(gMonth)) { gMonth = "木"; } if ("丙".equals(gMonth) || "丁".equals(gMonth)) { gMonth = "火"; } if ("戊".equals(gMonth) || "己".equals(gMonth)) { gMonth = "土"; } if ("庚".equals(gMonth) || "辛".equals(gMonth)) { gMonth = "金"; } if ("壬".equals(gMonth) || "癸".equals(gMonth)) { gMonth = "水"; } // 天干日 String gDay = gzDay.substring(0, 1); if ("甲".equals(gDay) || "乙".equals(gDay)) { gDay = "木"; } if ("丙".equals(gDay) || "丁".equals(gDay)) { gDay = "火"; } if ("戊".equals(gDay) || "己".equals(gDay)) { gDay = "土"; } if ("庚".equals(gDay) || "辛".equals(gDay)) { gDay = "金"; } if ("壬".equals(gDay) || "癸".equals(gDay)) { gDay = "水"; } // 天干时 String gTime = gzTime.substring(0, 1); if ("甲".equals(gTime) || "乙".equals(gTime)) { gTime = "木"; } if ("丙".equals(gTime) || "丁".equals(gTime)) { gTime = "火"; } if ("戊".equals(gTime) || "己".equals(gTime)) { gTime = "土"; } if ("庚".equals(gTime) || "辛".equals(gTime)) { gTime = "金"; } if ("壬".equals(gTime) || "癸".equals(gTime)) { gTime = "水"; }
这段代码看起来是一个方法,名字叫做"wuxing",它接受四个参数:gzYear、gzMonth、gzDay、gzTime,都是String类型。在方法体内,它对这四个参数进行处理,将它们的首个字符与五行相对应,比如 "甲" 和 "乙" 对应 "木","丙" 和 "丁" 对应 "火",以此类推。最后,它将这四个处理后的字符串返回。我猜测这段代码可能是用于中医五行分析或者其他类似的领域。
阅读全文