【发布时间】:2016-06-08 07:46:29
【问题描述】:
对象类是Java中每个类的超类。所以每个类都应该具有 Object 类的属性或行为。
然后我们可以声明对象数组,如下所示:
Object c = new Object[] {1,2,"22" };
那么当谈到 String 为什么下面的声明是错误的:
String s = new String[]{"s","s"};
【问题讨论】:
-
new String[]{"s","s"}的类型是String[],而不是String。Object[]是Object的子类,这就是第一个有效的原因。 -
String[] s = new String[]{"s","s"};
-
@AndyTurner 好的,那么
String[]不是String的子类。 -
@HarikaChoudaryKanikanti 正确。这通常适用于数组类型(
Object[]和Object除外);而且String是一个final类,所以它有no 子类。 -
由于没有人指出,这个版本更干净,同样有效:
String[] s = {"s","s"};
标签: java