作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这很简单,但让我感到困惑,我了解到 body 范围是
第一行断点,但是在第 1 个 if
语句下面出现错误(不是语句),第 2 个没问题。
我只是想要而已,为什么会报错?
if (true)
String name="Body Test";
和
if (true) {
String name="Body Test";
}
异常:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Syntax error, insert ":: IdentifierOrNew" to complete ReferenceExpression
Syntax error, insert "AssignmentOperator Expression" to complete Assignment
Syntax error, insert ";" to complete Statement String cannot be resolved to a variable
最佳答案
if (true) String name="Body Test";
无效,因为将新变量引入作用域不能是有条件的,因为它发生在编译时间。请注意,Java 不够聪明,无法意识到 if (true)
将始终 运行。您编写它的另一种方式绝对没问题,因为 {
和 }
总是 包含 name
。
这有点类似于在 switch
block 的特定 case
中引入一个新变量,而不使用 {
和 }
.
关于java - 有或没有 'IF' 语句的主体范围不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39876183/
我是一名优秀的程序员,十分优秀!