我正在尝试编写通用的asyncTask以处理更多请求

public class AsyncTaskInner <T> extends AsyncTask<Void, Void, List<T>> {

    Class<T> mClazz;

    public void setDataListener(TimeDataListener dataListener) {
        mDataListener = dataListener;
    }
    public void setClass(Class<T> clazz){
        mClazz = clazz;
    }

    @Override
    protected final List<T> doInBackground(Void... voids) {

        String path = "";
        final String requestItem = Config.getTime();
        List<T> priceResponseList = null;

        path = Config.getPath();

        try {
            URL url = new URL(path);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");

            final int statusCode = connection.getResponseCode();

            if (statusCode == 200) {  // 200 -> STATUS_OK.

                InputStream inputStream = new BufferedInputStream(connection.getInputStream());
                String response = IOUtils.toString(inputStream, "UTF-8");
                priceResponseList = getTimeResponse(response, mClazz);
            }
        } catch (NullPointerException | IOException e) {
            e.printStackTrace();
        }
        return priceResponseList;
    }

    @Override
    protected void onPostExecute(List<T> priceResponceList) {
        super.onPostExecute(priceResponceList);
        if (priceResponceList != null) {
            mDataListener.onTimeDataReceived(priceResponceList);
        }
    }
}


在setClass()方法和.execute()上返回错误...
未选中的对setClass(Class)的调用,作为原始类型RequestFactory.AsyncTaskInner的成员
以行类型'android.os.AsyncTask'的成员对'execute(Params)'的未选中调用

最佳答案

谢谢。我应该写那个
RequestFactory.AsyncTaskInner timeRequest;

timeRequest = new RequestFactory().new AsyncTaskInner<>();
timeRequest.setClass(TimeResponce.class);
timeRequest.execute();

07-24 09:47
查看更多