- package aaa;
- public class Test {
- public static void main(String[] args) {
- String n = null;
- if ("a".equals(n)) {
- System.out.print("Hello World!");
- } else {
- System.out.print("nihao shijie!");
- }
- }
- }
package aaa;
public class Test {
public static void main(String[] args) {
String n = null;
if ("a".equals(n)) {
System.out.print("Hello World!");
} else {
System.out.print("nihao shijie!");
}
}
}
打印是:
nihao shijie!
- package aaa;
- public class Test {
- public static void main(String[] args) {
- String n = null;
- if (n.equals("a")) {
- System.out.print("Hello World!");
- } else {
- System.out.print("nihao shijie!");
- }
- }
- }
package aaa;
public class Test {
public static void main(String[] args) {
String n = null;
if (n.equals("a")) {
System.out.print("Hello World!");
} else {
System.out.print("nihao shijie!");
}
}
}
打印:
Exception in thread "main" java.lang.NullPointerException
at aaa.Test.main(Test.java:5)
我通常的习惯写法是:
- package aaa;
- public class Test {
- public static void main(String[] args) {
- String n = null;
- if (n!=null && n.equals("a")) {
- System.out.print("Hello World!");
- } else {
- System.out.print("nihao shijie!");
- }
- }
- }
package aaa;
public class Test {
public static void main(String[] args) {
String n = null;
if (n!=null && n.equals("a")) {
System.out.print("Hello World!");
} else {
System.out.print("nihao shijie!");
}
}
}
打印结果是:
nihao shijie!
这个就是我以前的困惑,楼主的问题应该和这个相像,我想,
如果从精简代码的角度看:
if(8==n)比if(n==8)好
而直接写if(n==8)的人,要么他事先百分之百的确定n一定不为null,他才可以这样写,有经验的人一般写的时候还是会写成:
if(n!=null && n==8)
这里可能涉及到是那种语言了,如果是java,你这里的写法n其实是作为数字型数据,而java中初始化的时候会将n初始化为0,如果n是字符串,你的写法本身就有问题,连编译都通不过。