gpt4 book ai didi

java - 传递对象的实现而不进行强制转换

转载 作者:行者123 更新时间:2023-12-01 19:45:41 25 4
gpt4 key购买 nike

我提前为标题道歉。

我正在尝试将实现 Animal 的对象 Cat 传递给名为 Groom 的接口(interface)。在处理 Cat 实现的修饰的 Groom 中,我必须向下转换我的对象才能了解我正在修饰的内容,因为 Groom 接口(interface)接受 Animal 作为参数。

public interface Groom {
void groom(Animal animal);
}

public class CatGroomer implements Groom {
void groom(Animal animal) {
Cat cat = (Cat) animal; // <---- how can i avoid this downcast
}
}

public interface Animal {
void do();
void animal();
void things();
}

public class Cat implements Animal {
...
}

最佳答案

Groom 可以像这样通用:

interface Groom<T extends Animal> {
void groom(T t);
}

public class CatGroomer implements Groom<Cat> {
void groom(Cat animal) {

}
}

关于java - 传递对象的实现而不进行强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53483147/

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