有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java创建一个扩展AsyncTask的抽象类

我想创建一个中间抽象类,它扩展AsyncTask以在密切相关的类之间共享代码。真正的具体类将扩展中间抽象类来定义细节

对于AsyncTask,我需要指定参数、进度和结果。但是,在中间层,我没有任何实现细节。那么,我应该如何为具体类保留细节定义呢

//实现共享代码的中间层

public class SiteAsyncTask extends AsyncTask<?, ?, ?>{

//混凝土层

public class GetSiteAsyncTask extends SiteAsyncTask<Void, Void, Site> {

public class ListSiteAsyncTask extends SiteAsyncTask<Void, Void, ArrayList<Site> {

//在中间抽象层,如何将参数、进度和结果定义为泛型。结果可以是站点或站点的Arraylist

public class SiteAsyncTask extends AsyncTask<?, ?, ?>{

//在中间层,如何定义doInBackground以使其通用。它可以是站点或站点的阵列列表

protected Site doInBackground(Void... params) {

谢谢


共 (1) 个答案

  1. # 1 楼答案

    当使用泛型扩展类时,您可以在子类中重新定义泛型,并将它们重新应用于父类的定义

    如果需要所有参数

    public class SiteAsyncTask<Input, Progress, Result> extends AsyncTask<Input, Progress, Result>{}
    

    如果你只关心结果

    public class SiteAsyncTask<Result> extends AsyncTask<Void, Void, Result>{}
    

    如果你不在乎

    public class SiteAsyncTask extends AsyncTask<Void, Void, Void>{}