可以用Java导入数组类型吗?

可以用Java导入数组类型吗?,java,arrays,import,Java,Arrays,Import,是否可以在Java中导入数组类型 我知道这将是一个无用的导入,但我们可以显式导入java.util.String,尽管java.lang是自动导入的,甚至是当前编译单元中定义的类 是否可以进行此导入?不,您不能导入数组类型。就像不能导入int或double一样,数组更像是由语言定义的基本类型。当你写int[]a=newint[5];实际上,您要做的是留出5个内存位置来保存一个基本的int类型。任何其他数组声明都会发生同样的情况。换句话说,您不能从java导入它。您不能,而且java中没有单一的数

是否可以在Java中导入数组类型

我知道这将是一个无用的导入,但我们可以显式导入java.util.String,尽管java.lang是自动导入的,甚至是当前编译单元中定义的类


是否可以进行此导入?

不,您不能导入数组类型。就像不能导入int或double一样,数组更像是由语言定义的基本类型。当你写int[]a=newint[5];实际上,您要做的是留出5个内存位置来保存一个基本的int类型。任何其他数组声明都会发生同样的情况。换句话说,您不能从java导入它。

您不能,而且java中没有单一的数组类型。从不同元素类型创建的数组类型本身也会不同

如果您尝试编译以下代码,很容易看到:

String [] stringArray = new String[4];
Object [] objectArray = new Object[4];
objectArray = stringArray; //This won't work even though individually every String can be cast to Object

没必要。一旦理解了类型T,T[],T[],T[]。。。自动理解。编译器和运行时都是如此。实际上,一旦T被导入,所有T[]。。。是进口的,;一旦T被类加载器加载,所有T[]。。。由相同的类加载器加载。

+1用于提及原语。我想补充一点,大多数基本类型都有对象派生版本。类似地,java有几种从Object派生的集合类型,如ArrayList、LinkedList等。是的,有Integer、Float、Double,它们是它们的基本类型的不可变版本,也用作包装类,因为要使用模板创建集合,您需要一个Object。比如Arraylisty你是对的。但您无法从示例中看到它,因为List与List以及JLS中描述的参数化类型属性不兼容。但是objectArray.getClass与stringArray.getClass不同,而参数化类型不会出现这种情况。我应该补充的是,你甚至不能将一个数组类型转换成另一个数组类型。我知道这是不必要的。我只是想知道这是否可能。但事实并非如此。