【发布时间】:2021-11-23 06:08:01
【问题描述】:
我有一段代码-
public class Sudoku {
static int[][] game;
public static void main(String[] args) {
int [][] games= new int[3][3];
Object obj =games;
}
}
我的问题是如何将“游戏”引用变量分配给“对象”类型的引用变量?我认为“ClassCastException”会在运行时抛出。但是代码编译并运行良好。 由于两个原因,引用变量“games”是否不兼容分配给对象引用 - 1)“games”是对二维int数组的引用,而“obj”是对Object的引用。 2)int 显然是一个原始变量..如何将它分配给对象类型的变量? 我在 Intellij IDE 中运行它。
【问题讨论】:
-
所有数组都是
Object的实例。任何类型的对象都可以分配给Object引用。 -
"int 显然是一个原始变量" 是的,但这不是
int,而是int[][],它是一个引用类型。但是你可以写Object obj = 0;,因为自动装箱。 -
换个角度想一想——任何需要
new来创建实例的东西都是Object -
明白了,每当使用 new 时,这意味着我正在处理一个对象和“int[][],它是一个引用类型。”多谢你们!如果某些机构计划这样做,我曾提到要提及拒绝投票的原因,但仍然有人在没有提及任何理由的情况下拒绝投票。无论如何感谢@AndyTurner 和 Vasily