gpt4 book ai didi

java - 如果 block 变量定义给出错误,则非大括号

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:25:19 25 4
gpt4 key购买 nike

if(true)
String str;

你好,上面的代码给出了这样的错误:

Multiple markers at this line
- str cannot be resolved to a variable
- Syntax error on token "String", AssignmentOperator expected after this token

为什么会出现这样的错误?当然我知道 str 定义后将无法访问。但是java并没有给出这样的解释。我觉得很奇怪。

最佳答案

这是因为您将声明放在条件的 protected block 中。但是,根据 Java 语法,Java 声明不被视为语句。

声明允许与语句混合,作为用花括号括起来的 block 的一部分,但单个声明不被视为语句。这是完全有道理的,因为你声明的变量是不可用的:如果你想要一个声明初始化来解决它的副作用,比如

if (true)
String str = someFunction();

您可以使用表达式语句而不声明您无论如何都无法使用的变量:

if (true)
someFunction();

因此,如果您将声明本身放在条件或循环中,编译器会确定您犯了错误,并会生成一条错误消息来提醒您注意该问题。

关于java - 如果 block 变量定义给出错误,则非大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25465411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com