gpt4 book ai didi

java - 创建数组编译时间?

转载 作者:行者123 更新时间:2023-11-29 07:06:59 25 4
gpt4 key购买 nike

数组创建是否发生在编译时?

List<String>[] strings = new List[9];

即使 List 只是一个接口(interface)它也能工作,所以我猜数组创建发生在类型删除之前。这就是以下内容不起作用的原因:

   List<String>[] strings = new List<String>[9];

是否因为数组本身的创建发生在类型删除之前?

最佳答案

数组是在类型删除后在运行时创建的。 newarray 字节码指令保留用于创建数组。

由于 Java 中的数组仅包含对象引用,而不是具体对象,因此您可以创建接口(interface)和抽象类的数组。没有创建实例来填充数组。

至于为什么不能创建参数化类型的数组,原因是数组不是类型安全的,as explained in the tutorial .

关于java - 创建数组编译时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com