public static void main(String[] args) {
// TODO Auto-generated method stub
String a = null;
System.out.print("abc".equals(a)); }
以上程序不会报错!
public static void main(String[] args) {
// TODO Auto-generated method stub
String b = null;
System.out.print(b.equals("abc")); }
此程序会报空指异常。
也就是说用equals()方法时,
例如:str1.equals(str2),
str1的值不可以为null,如果为null则报空指异常
str2的值可以为null
小弟非常不解请各位指教!
// TODO Auto-generated method stub
String a = null;
System.out.print("abc".equals(a)); }
以上程序不会报错!
public static void main(String[] args) {
// TODO Auto-generated method stub
String b = null;
System.out.print(b.equals("abc")); }
此程序会报空指异常。
也就是说用equals()方法时,
例如:str1.equals(str2),
str1的值不可以为null,如果为null则报空指异常
str2的值可以为null
小弟非常不解请各位指教!
而str2是方法参数,为空不报错是因为equals方法里面没有对str2这个参数的方法调用,如果有的话也会报错
总之空对象调方法就会报错
这样定义,str1被初始化了,是字符窜对象,如果是为什么不可以用str1调方法?
这就是初始化啊?呵呵。只是定义了一个str1对象,没有初始化。null是字符串吗?