下面的代码有什么不妥之处?
1. if(username.equals(“wpc”)){}
2. int x = 1;
return x==1?true:false;
回答一问题:如果username初值为null在编译的时候会有警告,运行的时候抛出异常
如果username写在后面即使初值为null也不会抛异常
回答问题二:代码冗余无需还要三木运算符判断是否为true或者false,直接返回boolean类型就可以了
package java基础题目;
/*
* 问题: 1. if(username.equals(“wpc”)){
*
* }
* 2. int x = 1;
* return x==1?true:false;
*/
public class A2015年6月5日代码的不妥之处 {
// String username;
public static void main(String[] args) {
method1();
boolean bool = method2();
System.out.println(bool);
String string = method3();
System.out.println(string);
}
// 用equals比较时变量是放在前面还是后面
public static void method1() {
String username = null;
// 第一个if如果username在前面,若为null的话会报空指针异常
// if (username.equals("wpc")) {// 如果username在编译时发现真的是null就会给出警告提示信息
// System.out.println("wpc");
// }
// 如果放后面即使没有赋初值,运行时也不会报空指针异常
if ("wpc".equals(username)) {
System.out.println("wpc");
}
}
public static boolean method2() {
int x = 1;
return x == 2 ? true : false;//代码冗余
// return x == 1;// 如果相等就返回true不等就返回false(就没必要用三目运算符了)
// return "xx"=="xx";
}
public static String method3() {
int x = 1;
return x == 1 ? "正确" : "错误";
}
// 比较字符串的内容还可以用==和compareTo()
public static boolean method4() {
String string = "xxx";
String string2 = "xxx";
return string.equals(string2);// 相等返回true
}
public static int method5() {
String string = "xxx";
String string2 = "xxx";
return string.compareTo(string2);// 相等才返回0
}
}