我不是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/