gpt4 book ai didi

java - 是否可以编写一个方法来接受不同抽象的通用参数?

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:48 25 4
gpt4 key购买 nike

作为 followup to this question , 是否可以编写一个方法将 Dog 添加到合适的房间? (在这个例子中,它将接受 Animal 房间或 Dog 房间。)或者我是否被迫编写如下两种不同的方法? (由于类型删除,我什至不能依赖重载)。

public class Rooms {
interface Animal {}
class Dog implements Animal {}
class Room<T> {
void add(T t) {}
}

void addDogToAnimalRoom(Room<Animal> room) {
room.add(new Dog());
}

void addDogToDogRoom(Room<Dog> room) {
room.add(new Dog());
}
}

最佳答案

您正在使用 Room 作为消费者,因为它正在接受新的 Dog,所以 Josh Bloch 著名的 PECS acronym适用。

void addDogToDogRoom(Room<? super Dog> room) {
room.add(new Dog());
}

关于java - 是否可以编写一个方法来接受不同抽象的通用参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9929370/

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