gpt4 book ai didi

java - Head First Java,第 16 章,Be The Compiler 练习查询

转载 作者:行者123 更新时间:2023-12-01 16:51:18 25 4
gpt4 key购买 nike

我刚刚读完《Head First Java》的第 16 章,这是关于集合和泛型的使用的。本章末尾有一个“成为编译器”练习,给出了 9 行代码,挑战是说出哪些代码行将成功编译。给出的代码行如下:-

ArrayList<Dog> dogs1 = new ArrayList<Animal>();       
ArrayList<Animal> animals1 = new ArrayList<Dog>();
List<Animal> list = new ArrayList<Animal>();
ArrayList<Dog> dogs = new ArrayList<Dog>(); //The book says this line will not compile
ArrayList<Animal> animals = dogs;
List<Dog> dogList = dogs;
ArrayList<Object> objects = new ArrayList<Object>();
List<Object> ObjList = objects;
ArrayList<Object> objs = new ArrayList<Dog>();

解决方案指出第 3、6、7 和 8 行将编译,但是当我尝试自己编译代码行时,我发现第 4 行也编译成功。更重要的是,第 6 行代码依赖于第 4 行代码的编译,因为它引用了第 4 行中的 ArrayList!

我想知道是否有其他人做过这个“成为编译器”练习在完成它时注意到这个问题,或者是否有人知道为什么作者会在解决方案中留下第四行代码虽然它编译得很好。

预先非常感谢您提供的任何帮助。

最佳答案

第四行应该可以编译。如果你看Confirmed Errata对于 Head First Java,它就在那里:

enter image description here

关于java - Head First Java,第 16 章,Be The Compiler 练习查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39594684/

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