【问题标题】:Given an ArrayList is-a List and a List is-a Collection is the following true? ArrayList<String> is-a Collection<String> [duplicate]给定一个 ArrayList is-a List 和一个 List is-a Collection 以下是真的吗? ArrayList<String> is-a Collection<String> [重复]
【发布时间】:2022-02-14 16:25:43
【问题描述】:

我几乎可以肯定这个问题的答案是肯定的,但我不确定如何在考试中表达出来。既然 ArrayList 是 List,List 是 Collection,我们可以肯定地说 ArrayList 是 Collection。

但是,我如何在事先不知道 Collection 是泛型类的情况下确定 ArrayList 是 Collection

你会如何回答这个问题?

谢谢

【问题讨论】:

  • 您所问的术语是“方差”,有 3 个……变体:协变、逆变和不变。我必须承认这是一个令人困惑的话题,但是网上有很多资源。 ArrayList&lt;String&gt; - Collection&lt;String&gt; 是一个简单的例子。更有趣的案例是ArrayList&lt;Animal&gt; - Collection&lt;Cat&gt;

标签: java oop


【解决方案1】:

试试这个,例如https://www.programiz.com/java-programming/online-compiler/https://www.tutorialspoint.com/compile_java_online.php

import java.util.Collection;
import java.util.List;
import java.util.ArrayList;


public class Is_A_List_A_Class_class{

     public static void main(String []args){
        List<String> list = new ArrayList<String>();
        System.out.println(list instanceof Collection);
     }
}

输出:

> java -cp /tmp/K2aGszTI3o Is_A_List_A_Class_class
true

【讨论】:

  • 这只是确认列表是Collection,而不是Collection&lt;String&gt;
猜你喜欢
  • 1970-01-01
  • 2022-12-02
  • 1970-01-01
  • 2023-01-15
  • 1970-01-01
  • 2020-04-12
  • 2023-02-09
  • 2017-05-01
  • 2019-11-17
相关资源
最近更新 更多