java - 将二维字符串数组分配给一维对象数组

标签 java arrays

我对这段代码感到困惑

String[][] str=new String[2][3];
Object[] obj=str;

这编译得很好。因为 Object 是父类(super class) String 是子类

但是下面的代码会产生错误

class Ex { } 
class Ex1 extends Ex { } 

class ExTest {
  public static void main(String[] args) 
  { 
    Ex1[][] ex1=new Ex1[2][3]; 
    Ex[] ex=ex1; 
  } 
} 

但是这段代码为什么会产生错误

最佳答案

它编译是因为 obj 现在将包含两个一维 String[] 对象。

以下所有内容都会编译:

String[][] str = new String[2][3];
Object obj1 = str;
Object[] obj2 = str;
Object[][] obj3 = str;

关于java - 将二维字符串数组分配给一维对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5298553/

相关文章:

c++ - 为什么我的 strcmp 版本不起作用?

ruby - 如何从字符串数组中生成可能的字母顺序组合?

c++ - 如何将模式从一个数组更改为另一个数组然后再返回

java - 为什么 XX :MaxDirectMemorySize can't limit Unsafe. 分配内存?

Java 无法将十六进制字符串解析为 int

javascript - 将对象数组转换为 HashMap ,由对象的属性值索引

java - 从文件中读取单词后,按字母顺序在 java 中创建单词数组

Java:为什么我不能插入参数而不是 %s?

java - 是否可以在 JDK7 中执行 'find . -ctime n'?

java - 如何将以下数据转换为LOOP