帮我看看下面的代码有什么问题
时间: 2023-08-13 17:04:28 浏览: 96
```java
public class Example {
public static void main(String[] args) {
int i = 0;
while (i < 10)
class Local {
void print() {
System.out.println(i++);
}
}
new Local().print();
}
}
```
这段代码的问题在于 `Local` 类的定义在 `while` 循环体外,而实例化却在循环体内。因此,当我们在循环体内实例化 `Local` 类时,实际上并没有定义 `Local` 类,编译器会抛出编译错误。
要解决这个问题,我们需要将 `Local` 类的定义移到循环体内部。例如,下面是修改后的代码:
```java
public class Example {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
class Local {
void print() {
System.out.println(i++);
}
}
new Local().print();
}
}
}
```
在上面的代码中,我们将 `Local` 类的定义移到了循环体内部,并在每次循环时都实例化一次。这样就可以避免编译错误,并可以正常执行程序。
阅读全文
相关推荐

















