java - 变量或作用域相关的问题

查看:99
本文介绍了java - 变量或作用域相关的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

int x; 
int y = 3; 
if(y < 4) { 
    x = 2; 
} 
System.out.print(x);

这个代码为什么会报错?

解决方案

虽然y已经赋值为3了,判断y<4时,编译器仍然无法确定这个时候y还是3(比如多线程改变了y的值),所以y<4不一定是true,这样的话x无法初始化,编译器报错。
可以改成:

final y = 3;

这样编译器会知道y的值不会改变, 也就能确认y<4一定是true,x能初始化

这篇关于java - 变量或作用域相关的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆