[英]local variable cannot be assigned as final
我有一个变量要求我将其设为最终变量,但在将其设为最终变量时,我收到一条错误消息,内容如下:“无法分配最终局部变量“enter”,因为它是在结束类型中定义的”
你怎么能声明这样一个变量?
void yyyyyy(ActionEvent event){
final Scanner enter = null;
try{
.
.
.
enter = new Scaner(xxxxx);
}catch(){
....
}finally{
if(enter != null){
}
}
现在你声明变量并同时初始化它。 由于它是最终的,因此您不能多次为其分配值。
如果你从初始化中删除赋值,你仍然不能使这个变量最终,因为你在 finally 块中检查它的 null。 为了使该逻辑起作用,应在某处明确分配变量 null 。 这是不可能的,因为 try 块可能会在第一行抛出异常。
无论要求您将变量设为最终变量 - 忽略它。
你可以让它像这样工作。 正如其他一些答案所解释的那样,您不能为最终变量赋值两次。
你可以让它像这样工作
void yyyyyy(final ActionEvent event) {
Scanner enter = null;
try {
enter = new Scanner("/");
} catch (final Exception exception) {
} finally {
enter.close();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.