gpt4 book ai didi

Java 继承类的不兼容类型

转载 作者:行者123 更新时间:2023-11-30 06:01:05 25 4
gpt4 key购买 nike

我对 Java 还很陌生,假设以前有人问过这些类型的问题,但经过几个小时的搜索仍然没有找到解决方案。

我有一个抽象类

public abstract class DBQueryResponse {...}

两个类继承它

public class TransactionKeyResult extends DBQueryResponse {...}
public class SalespersonIdResult extends DBQueryResponse {...}

在另一个类中,我有这个函数

private DynamoDBQueryExpression<? extends DBQueryResponse> generateQueryExpression() {...}

但是每当我尝试在其他地方调用它时:

DynamoDBQueryExpression<SalespersonIdResult> queryExpression = generateQueryExpression();
DynamoDBQueryExpression<TransactionKeyResult> queryExpression = generateQueryExpression();

它总是提示“不兼容的类型”,它期望 DBQueryResponse 但发现了其他内容。我一直认为由于多态性,这是允许的。

我必须使用 2 个类的原因是它们对不同的 aws 数据库进行类似的调用。

任何建议表示赞赏。谢谢。

最佳答案

该方法应返回精确类型而不是通配符,但类型可以绑定(bind):

<T extends DBQueryResponse> DynamoDBQueryExpression<T> generateQueryExpression()

关于Java 继承类的不兼容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58986306/

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