gpt4 book ai didi

java - 将 Java 数组分配给非数组属性 - 可序列化

转载 作者:行者123 更新时间:2023-12-02 08:34:36 24 4
gpt4 key购买 nike

为什么以下方法的第一行可以编译,而第二行则不能?我预计两者都会失败。

import java.io.Serializable;

public class ArrayConversions {
Serializable serial = new Serializable[5];
Runnable run = new Runnable[5];
}

最佳答案

第一行可以编译,因为所有数组都实现了Serialized。来自 JLS section 10.8 :

Although an array type is not a class, the Class object of every array acts as if:

  • The direct superclass of every array type is Object.

  • Every array type implements the interfaces Cloneable and java.io.Serializable.

所以你可以使用:

Serializable serial = new int[10];

碰巧创建了一个Serialized[],但这只是一个巧合 - 这并不像您本意能够将数组类型值分配给其元素类型值。

因此,对于 Object 也可以看到您的错误:

Object o = new Object[10]; // Or new String[10] or new int[10] or whatever

...但这些只是数组类型支持的内容。

关于java - 将 Java 数组分配给非数组属性 - 可序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23322720/

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