gpt4 book ai didi

java - List 中可以添加什么类型的对象 list = new ArrayList<>();

转载 作者:行者123 更新时间:2023-12-02 05:47:00 25 4
gpt4 key购买 nike

我正在尝试了解类型推断和菱形运算符的使用。

假设RaceCarCar的子类,而Car又是Vehicle的子类,可以将什么样的对象添加到下面的集合中?

List<Car> list = new ArrayList<>();

我找到了What is the point of the diamond operator in Java 7?问题,但还是没明白。

提前谢谢您!

LE:了解继承在这种情况下如何工作非常重要

最佳答案

您可以添加 CarCar 的任何子类。但没有 Car 的父类(super class)。

编辑:正如@HotLicks提到的,如果您使用诡计,通过强制转换,您可以技术上将任何类型的对象添加到List中。请注意,这是一种让自己感到困惑的简单方法,因为您将从 List 中提取一个对象,并且它将具有意外的类型。

import java.util.*;

class Foo{}
class Bar extends Foo{}
class Z{}
public class FooBar2{
public static void main(String[] args) {
List<Foo> list = new ArrayList<>();
list.add(new Foo());
list.add(new Bar());

// Compile error
// list.add(new Z());

// Subterfuge
((List) list).add(new Z());
}
}

关于java - List<MyClass> 中可以添加什么类型的对象 list = new ArrayList<>();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23962022/

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