java - 为什么简单的 for 循环在 onCreate 方法中有效,而在 MainActivity 类中无效?
问题描述
我正在学习 Android,我在 Android 的 Main Activity 类中遇到了循环的异常行为。考虑以下代码:
public class MainActivity extends AppCompatActivity {
int game_board[][] = new int[3][3];
int limit = 3;
for(int row = 0; row < limit; row++){
for(int column = 0; column < limit; column++){
game_board[row][column] = -1;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for(int row = 0; row < limit; row++){
for(int column = 0; column < limit; column++){
game_board[row][column] = -1;
}
}
}
}
MainActivity 类中的 for 循环给了我一个编译时错误列表(所有语法),例如:error: ')' expected, error: ';' 预期用于外部row
for 循环。但是相同的嵌套 for 循环不会在 onCreate 方法中引发任何错误。
发生这种情况的原因是什么?它与 UI 线程有关还是只是一个基本概念?(还重新启动了 Android Studio,但仍然遇到同样的问题)。提前致谢。
解决方案
这与 UI 线程无关——您根本无法将代码块直接放在类中。它必须驻留在方法、构造函数或初始化程序块中。
推荐阅读
- python - 未定义方法
- java - 生成一个系列/返回系列中的第 n 项
- chromium - 如何查看网络请求/响应是否使用 QUIC 和/或 HTTP/2?
- python - PathLib递归删除目录?
- php - 在 HTML 中,多项选择以逗号分隔(有效)保存在 MySQL 中,但不会从基于类的阅读方法中重新显示
- python-3.x - 为数据类型分配的默认内存是否在舍入中起作用?如果浮点数超过分配的内存,它会以什么方式四舍五入?
- mysql - 正确转义 JSON 特殊字符以在 CSV 文件中使用
- c# - C#字符串包含另一个字符串的所有字母字符
- react-native - React Native:状态更改后无法重新渲染图像
- google-chrome - chrome 在 XMLHttpRequest 之后不遵循重定向