总是见到
JTextField time=null;
time=new JTextField();和JTextField time;
time=new JTextField();有什么区别吗?
当然JTextField是定义在构造函数前面的..
JTextField time=null;
time=new JTextField();和JTextField time;
time=new JTextField();有什么区别吗?
当然JTextField是定义在构造函数前面的..
调试欢乐多
String str;
str.toString();
}请注意,只有局部变量有这个问题,这个时候str既不是 null,也不是空字符串,它是一个什么也不是的东西,所以可以被编译器检测出来,这样的写法是错误的。但你可以通过给str赋值的方法欺骗编译器。
public static void main(String[] args) {
String str = null;
str.toString();
}虽然str=null,下面会出现NullPointerException,但是编译器看到赋值语句,以为你已经进行了数据初始化,所以就让代码通过编译了。NullPointerException这个异常是运行期间才会出现的,静态编译无法检测这些东西。
局部变量必须事先初始化。JTextField time=null;
time=new JTextField();
和
JTextField time;
time=new JTextField();
的区别就是底下的没初始化,其余的看上面的就成了