gpt4 book ai didi

java - 我无法为 AsyncTask 的结果参数设置上限

转载 作者:行者123 更新时间:2023-11-29 21:50:14 24 4
gpt4 key购买 nike

我正在尝试为 AsyncTask 的结果参数设置上限,如下所示:

public class MyTask extends AsyncTask<T, Long, V extends Model> 

编译器提示'extends is not expected, it's expecting a comma.

我曾尝试将模型编写为抽象类和常规类。

有什么想法吗?

谢谢,大卫

最佳答案

由于 TV 是未解析的类型参数,因此需要对它们进行参数化 MyTask。尝试声明以下内容:

public class MyTask<T, V extends Model> extends AsyncTask<T, Long, V>

我还将 calls 更改为 class - 我认为这是一个错字。

回应您的评论:

MyTask<T, V extends Model>

这里,MyClass声明类型参数TV。声明类型参数时,可以选择使用 extends boundedT 不受限制 - 它可以是任何引用类型。 V 有一个 Model上限。 - 它必须是某种类型,它是或扩展 Model

extends AsyncTask<T, Long, V>

就像任何不扩展 Object 的类的声明一样,这就是说 MyTask 扩展了 AsyncTask - 我相信你明白了. AsyncTask具有三个类型参数:在其声明中,它们称为 ParamsProgressResult。在这里,MyTask 为这些类型参数提供类型参数 - TLongV.

因此 MyTaskParams 保持为无界类型参数,解析 Progress 为具体类型 Long,并且将 ResultModel 绑定(bind)。

参见 Java Tutorials以获得对泛型的良好介绍。然后看Angelika Langer's Generics FAQ进一步的问题。

关于java - 我无法为 AsyncTask 的结果参数设置上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612393/

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