java - 数组的匿名子类?我认为?不明白这个语法

标签 java anonymous-class

我不是Java程序员,但必须做一些Java工作。从一些谷歌搜索来看,这似乎是一个匿名子类。但是对象后面跟着“[]”。但话又说回来,变量被声明为一个对象。这只是与允许对象数组的最通用类型(对象)的逆变吗?

Object thing = new Object[] {someInt, anotherInt, someInterface, someString};

最佳答案

没有。数组是最终的,所以你不能对它们进行子类化。代码只是创建一个对象数组 Object[] 并在创建时用一些整数(自动装箱为 Integer)、一个接口(interface)和一个字符串填充它。

该示例的“奇怪”之处在于它将 Object[] 分配给 Object 引用。现在所有类都扩展了 Object ,包括数组,所以这是有效的,但我无法想象在任何情况下使用 Object thing 而不是 Object 是有意义的[] 事情除非你故意让你的代码不太清晰。

关于java - 数组的匿名子类?我认为?不明白这个语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37741592/

相关文章:

java - Spring bean constructor-arg拒绝我想要传入的对象(实现myInterface),构造函数参数的类型为myInterface

java - 如何使用JCOP专有方法返回可用内存?

groovy - 在枚举内的匿名类中声明实例变量

python - Python 有类似 Java 的匿名内部类的东西吗?

Java:匿名类作为现有接口(interface)的子类?

java - 访问容器字段

java - Log4j 调试到文件 - 信息到控制台

java - 单个 Spring @Transaction 中的两个 dao 方法

java - 使用 JAX-RS 和 JAXB 将 JSON 响应映射到对象

java - 匿名类的限制