gpt4 book ai didi

Java 抽象方法的通配符返回类型

转载 作者:行者123 更新时间:2023-11-30 01:52:59 24 4
gpt4 key购买 nike

通配符的 Java 文档说它们可以用作返回类型,但这通常不是一个好主意。如果通配符用作抽象方法的返回类型但实现此方法的类返回具体类型,这仍然成立吗?如果没有,处理这种情况的最佳方法是什么。考虑下面的例子。在这种情况下,Entity可能会根据 JSON REST 响应进行建模,在第二种情况下,结果只是字符串列表。使用List<Object>是否更好作为返回类型或完全是其他什么?

public abstract class AbstractClient {
public abstract List<?> listEntities();
}

public class ConcreteClient {
@Override
public List<Entity> listEntities();
}

public class ConcreteClient2 {
@Override
public List<String> listEntities();
}

最佳答案

在这种情况下,最好正确使用泛型而不是使用通配符。使用类型参数并使用类型参数的适当参数扩展抽象类:

public abstract class AbstractClient<T> {
public abstract List<T> listEntities();
}

public class ConcreteClient extends AbstractClient<Entity> {
@Override
public List<Entity> listEntities();
}

public class ConcreteClient2 extends AbstractClient<String> {
@Override
public List<String> listEntities();
}

关于Java 抽象方法的通配符返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55425255/

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