if( ( int i = object.method() ) != 0 ){
//code
}
不能使用int i;
if( ( i = object.method() ) != 0 ){
//code
}
可以使用第一种写法存在什么问题呢?
变量i仅仅在if{ //code }中使用,所以想用第一种声明方式
//code
}
不能使用int i;
if( ( i = object.method() ) != 0 ){
//code
}
可以使用第一种写法存在什么问题呢?
变量i仅仅在if{ //code }中使用,所以想用第一种声明方式
int i = object.method ;
}
for循环的第一个参数用来初始化的,第二个是条件判断。
也等同于
int i = xx
while(xx < ??)
{
i++;
}
这样object.method就被调用了两次
我的想法是
假如说我预先声明了变量准备引用object.method返回的另一个object
然后我希望在{//code}执行完后系统可以随时准备释放那个object占用的资源
就在{//code}后把变量对那个object的强引用置空
这样GC在扫描到这个object就可以准备回收它只是觉得如果能把变量作为一个局部变量,系统自动处理其生存期代码会更好看