Java协变量数组不好?

Java协变量数组不好?,第1张

Java协变量数组不好?

很简单。

String strings[] = {"Broken","Type", "system"};Object objects[] = strings;objects[0] = 5; // compiles fine, but throws ArrayStoreException at runtime

只要您将内容取出,协变类型就不错,但是放入内容的那一刻,整个事情就破裂了。假设您有一个采用Object []作为参数的方法。

fn(Object[]a){...   }

能用调用它不是很好

String[]
吗?

 String[] s = {"I","didn't","know","that","this","was","broken"} fn(s);

好吧,听起来很自然,尤其是在我们没有通用语言的早期。只要没有任何突变,所有这些都可以正常工作,并且Java不提供任何机制来保证这一点

你应该总是青睐

Lists
arrays
,因为
Lists
使用
generics
它是不变的。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5502139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存