您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java协变量数组不好?

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不提供任何机制来保证这一点。

你应该总是青睐Listsarrays,因为Lists使用generics它是不变的。

java 2022/1/1 18:28:34 有373人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶