gpt4 book ai didi

java - 使用泛型参数重写方法

转载 作者:行者123 更新时间:2023-12-01 17:26:51 26 4
gpt4 key购买 nike

我们在类中有一个采用通用参数的方法

public class XYZ {
public <T extends Animal> someMethod(T animal){}
}

我想在具有特定类型的子类中重写此方法,但不知道如何。如何解决这个问题?

public class ABC extends XYZ{
@Override
public Cat someMethod(Cat animal){} // error
}

最佳答案

一种可能的解决方案是使您的 XYZ 类通用:

public class XYZ<T extends Animal> {

public void someMethod(T animal) {
}
}

并声明您的 ABC 类特定于猫:

public class ABC extends XYZ<Cat> {
}

现在你可以写:

ABC cats = new ABC();
cats.someMethod(new Cat()); //ok
cats.someMethod(new Dog()); //does not compile

关于java - 使用泛型参数重写方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14196461/

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