java - 传递泛型并且必须转换为正确的对象java。不应该转换

标签 java android generics

我正在尝试实现一个方法,这样我就不必使用 java 泛型来转换参数。

这是我调用的电话。

new NetworkAsyncTask(new NetworkCall("http://192.168.1.107/api/api/index.php/api/item/524a1e7c3a5d9", HttpMethod.GET, null, new Item()), this).execute(); 

然后 NetworkAsyncTask 扩展了 AsyncTask。 在此类中,有一个 onPostExecute 方法,该方法会回调实例化 NetworkAsyncTask 的原始类

    protected void onPostExecute(T response) {         
        networkCallback.postExecute(response);         
    }

实例化 NetworkAsyncTask 的类获取回调。 (这就是问题所在。)

    public <T> void postExecute(T response) {
        Item item = (Item) response;;
    }

对象响应是 java 通用的,正确吗?因此,我不应该转换它。代码应该像

    public <T> void postExecute(T response) {
        Item item =  response;
    }

我该如何实现这个目标?可能吗?

最佳答案

如果你的 T 扩展了 Item,那么你就不必施放,

public <T extends Item> void postExecute(T response) {
        Item item =  response;
}

关于java - 传递泛型并且必须转换为正确的对象java。不应该转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21346847/

相关文章:

java - NullPointerException - Java - WCF 之上的 Web 服务客户端(使用 WS-Security)

android - 您可以在 Android 上拦截 MMS SMS 消息并提取图像吗?

java - 将 POI RichTextString 转换为 HTML 或 RTF

Java JComboBox 监听更改选择事件

java - 为什么java "putAll"无法深复制Map的值元素?

java - Android 静态函数

Android startService() 需要很长时间才能返回到 UI 线程

c# - 你能定义一个接受*任何*可为空的类型、值或引用的泛型吗?

java - 为什么在填充包含 < 类型元素的集合时行为会有所不同?扩展 T>?

java - 转换为通用原始类。方法运行没有任何异常,如何以及为什么?