Java数组对象返回数组的类型而不是数组

Java数组对象返回数组的类型而不是数组,java,arrays,nullpointerexception,primitive,Java,Arrays,Nullpointerexception,Primitive,在寻求帮助之前,如果这是一个重复的问题或糟糕的问题,我真的很抱歉,因为我不知道搜索什么 在java中使用数组时,有一件事困扰着我。 以下是代码: String []stt = new String[5]; stt[0].length(); //of course NullPointerException because uninitialized. System.out.println(stt.getClass()); //it should return class of array ins

在寻求帮助之前,如果这是一个重复的问题或糟糕的问题,我真的很抱歉,因为我不知道搜索什么

在java中使用数组时,有一件事困扰着我。 以下是代码:

String []stt = new String[5];
stt[0].length();  //of course NullPointerException because uninitialized.
System.out.println(stt.getClass()); //it should return class of array instead of String.
根据上面的代码,到目前为止还没有创建字符串对象,stt应该是数组类型而不是字符串类型,实际上stt中的元素应该是字符串类型


我想知道什么是数组对象类,它应该返回数组对象类。

引用所指向的类是字符串数组。如果您想测试该引用是否是数组的一部分,那么有一种特殊的方法,isArray

正如其他一些人所指出的,通过仔细观察,您可以看到仅使用

class [Ljava.lang.String; // Array of String
class java.lang.String    // String

引用所指向的类是字符串数组。如果您想测试该引用是否是数组的一部分,那么有一种特殊的方法,isArray

正如其他一些人所指出的,通过仔细观察,您可以看到仅使用

class [Ljava.lang.String; // Array of String
class java.lang.String    // String
运行此代码:

String []stt = new String[5];
System.out.println(stt.getClass());
印刷品

类[Ljava.lang.String; ^^ 开头的[L]表示数组,其余的显然是字符串。合在一起:字符串数组。

运行以下代码:

String []stt = new String[5];
System.out.println(stt.getClass());
印刷品

类[Ljava.lang.String; ^^
[L在开始时表示数组,其余的显然是字符串。合在一起:字符串数组。

Java中的数组不是单独的类型。因此字符串数组的类仍然是字符串。该类只是处理数组的静态方法的集合,您无法创建它的实例。正如其他答案中指出的,您可以使用isA从类中选择array方法来确定对象是否为数组。

Java中的数组不是单独的类型。因此字符串数组的类仍然是字符串。该类只是处理数组的静态方法的集合,您无法创建它的实例。正如在其他答案中指出的,您可以使用Cl中的isArray方法ass确定对象是否为数组。

或者,您可以使用instanceof:


或者,您可以使用instanceof:

语句System.out.println stt.getClass;实际上返回一个数组。如果您仔细观察,则输出为class[Ljava.lang.String;而不是class java.lang.String.[表示数组的表示形式]

要检查输出是否为数组,可以尝试返回布尔值的stament stt.getClass.isArray。

语句System.out.println stt.getClass;实际上返回一个数组。如果仔细观察,输出为类[Ljava.lang.String;但不是类java.lang.String.[表示数组的表示形式]


要检查输出是否为数组,您可以尝试返回布尔值的stament stt.getClass.isArray。

这个问题的答案中的解释很好:这个问题的答案中的解释很好:String类为什么与数组关联???我们可以创建任何类的对象的数组,它们是如何关联的与java.lang.reflect.Array关联。看起来所有类也像Object一样继承Array。为什么String类与Array关联???我们可以创建任何类的对象的数组,它们都是如何与java.lang.reflect.Array关联的。看起来所有类也像Object一样继承Array。糟糕的编码,为什么不使用?re将o instanceof String[]设置为错误编码,为什么不使用?返回o instanceof String[]