gpt4 book ai didi

java - 接受特定类型的类的方法参数

转载 作者:行者123 更新时间:2023-11-30 02:58:26 24 4
gpt4 key购买 nike

假设我有一个抽象类:

public abstract class Car {

}

上述类的内部类扩展:

public class Foo {

public static final class BMW extends Car {
public final Foo foo = new Foo("foo");
}

}

如何创建接受 BMW 类的方法?

我当前的方法:

void listInstances(final Class<Car> clazz) {}

出现此错误:

incompatible types: Class<Foo.BMW> cannot be converted to Class<Car>

当我这样调用它时:

listInstances(Foo.BMW.class);

最佳答案

支柱是正确的...

void listInstances(Class<Car>)

...必须接受 Car 类对象并且仅接受 Car 类对象。或者...

void listInstances(Class<? extends Car>);

可以接受扩展 Car(包括 Car)的类的任何 Class 对象。

很奇怪(根据方法的名称)没有返回值。通常,当一个方法具有这样的名称时,我会看到类似的内容:

<T extends Car> List<T> listInstances(Class<T> type);

这保证了返回类型与输入类型匹配。

关于java - 接受特定类型的类的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603955/

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