我有一段代码-
public class Sudoku {
static int[][] game;
public static void main(String[] args) {
int [][] games= new int[3][3];
Object obj =games;
}
}
我的问题是如何让"游戏";将引用变量赋值给object类型的引用变量?我认为">ClassCastException";将在运行时抛出。但是代码编译和运行得很好。参考变量不是"游戏"吗?由于两个原因,不兼容分配给Object引用1)"games"是对二维int数组的引用,而"obj"是对象的引用。2)int显然是一个原始变量,它怎么能赋值给object类型的变量呢?我在Intellij IDE中运行这个。
参考变量不是" games"不兼容分配给Object引用有两个原因:1)"游戏"是对二维int数组的引用,而"obj"2)int显然是一个基本变量
你是正确的,int
是一个基本类型。但是,在您的示例中,games
的类型是int[][]
,而不是int
,并且是Object
的子类。
如果您的代码
int [] games= new int[3];
Object obj =games; // will fail to compile,
但是声明game
为int [][] games
可以赋值给obj