gpt4 book ai didi

java - 将未知的 ArrayList 类型传递给方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:30:18 25 4
gpt4 key购买 nike

假设我有这两个 ArrayList:

ArrayList<Book> book = new ArrayList<>();
ArrayList<Journal> journal = new ArrayList<>();

BookJournal 是两个不同的类。

BookJournal 对象都有一个 getYear() 方法。我想创建一个传入未知 ArrayList 类型的方法,并将传入的年份与列表中的对象进行比较。 main中的代码如下:

public static void fooBar(int year, ArrayList<?> list)
{
if(list.get(0).getYear() == year) // does not work!
{
}
}

如果将未知类型传递到方法中,我将无法使用该对象的方法 (getYear())。如果不使用两种方法来做同样的事情(一种用于 Book 和一种用于 Journal),我该如何做到这一点?

最佳答案

您可以创建一个声明 getYear() 方法的接口(interface)(如果它不存在)(可能命名为 HasYear),并拥有 Book Journal 实现它。

然后您可以让您的 fooBar 方法采用某种类型参数的 ArrayList,即 HasYear

public static void fooBar(int year, ArrayList<? extends HasYear> list)

? extends 是因为它是消费者而不是生产者。

关于java - 将未知的 ArrayList 类型传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33107229/

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