我正在尝试实现一个方法,这样我就不必使用 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/