我在一个扩展的asynctask中得到了这个错误,但我确信Object[]是一个void[]。
这是我的自定义AsyncTask:
public abstract class RepeatableAsyncTask<A, B, C> extends AsyncTask<A, B, C> {
private static final String TAG = "RepeatableAsyncTask";
public static final int DEFAULT_MAX_RETRY = 5;
private int mMaxRetries = DEFAULT_MAX_RETRY;
private Exception mException = null;
/**
* Default constructor
*/
public RepeatableAsyncTask() {
super();
}
/**
* Constructs an AsyncTask that will repeate itself for max Retries
* @param retries Max Retries.
*/
public RepeatableAsyncTask(int retries) {
super();
mMaxRetries = retries;
}
/**
* Will be repeated for max retries while the result is null or an exception is thrown.
* @param inputs Same as AsyncTask's
* @return Same as AsyncTask's
*/
protected abstract C repeatInBackground(A...inputs);
@Override
protected final C doInBackground(A...inputs) {
int tries = 0;
C result = null;
/* This is the main loop, repeatInBackground will be repeated until result will not be null */
while(tries++ < mMaxRetries && result == null) {
try {
result = repeatInBackground(inputs);
} catch (Exception exception) {
/* You might want to log the exception everytime, do it here. */
mException = exception;
}
}
return result;
}
/**
* Like onPostExecute but will return an eventual Exception
* @param c Result same as AsyncTask
* @param exception Exception thrown in the loop, even if the result is not null.
*/
protected abstract void onPostExecute(C c, Exception exception);
@Override
protected final void onPostExecute(C c) {
super.onPostExecute(c);
onPostExecute(c, mException);
}
public class ListPalinasAsynkTask extends RepeatableAsyncTask<Void, Void, List<Palina>>{
private static final String TAG = "ListPalinasAsynkTask";
private static final boolean D = SystemConstants.ACTIVE_DEBUG;
private ApiRequest.ListPalinasCallback mCallback;
public ListPalinasAsynkTask(ApiRequest.ListPalinasCallback callback) {
if(D) Log.d(TAG, "Called: ListPalinasAsynkTask([callback])");
mCallback = callback;
}
@Override
protected List<Palina> repeatInBackground(Void... voids) {
/* Here i send request to get palinas */
return Api.getPalinasNearMe();
}
@Override
protected void onPostExecute(List<Palina> palinas, Exception exception) {
if(exception != null)
Logging.e(TAG, "Received exception in Asynk Task", exception);
if(palinas != null)
mCallback.result(palinas);
else
mCallback.result(new ArrayList<Palina>());
}
}
E/ListPalinasAsynkTask﹕ Received exception in Asynk Task
java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.Void[]
at ListPalinasAsynkTask.repeatInBackground(ListPalinasAsynkTask.java:19)
at RepeatableAsyncTask.doInBackground(RepeatableAsyncTask.java:43)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
public class ListPalinasAsynkTask extends RepeatableAsyncTask<Void, Void, List<Palina>> {
result = repeatInBackground(inputs);
我是这样叫execute的:
AsyncTask mAsyncTask = new ListPalinasAsynkTask(callback);
....
mAsyncTask.execute();
找到的解决方案:
问题是这样的:
AsyncTask mAsyncTask = new ListPalinasAsynkTask(callback);
....
mAsyncTask.execute();
我正在使用泛型AsyncTask调用execute,该类将把Void作为参数传递,并且永远不会对ListPalinasAsynkTask调用.execute(),相反,它将调用ListPalinasAsynkTask.execute(Void)。这就给出了错误。
public abstract class VoidRepeatableAsyncTask<T> extends RepeatableAsyncTask<Void, Void, T> {
public void execute() {
super.execute();
}
}
VoidRepeatableAsyncTask mAsyncTask = new ListPalinasAsynkTask(callback);
....
mAsyncTask.execute();
这将调用AsyncTask的no-parameters execute方法。
问题内容: 我在扩展的asynctask中遇到此错误,但我确实确定Object []是Void []。 这是我的自定义AsyncTask: 这是产生问题的子类: 最后,这是错误: 我无法解释此异常,因为我将Void作为参数!那不应该是一个对象。你有解决方案吗? 编辑 :ListPalinasAsyncTask.java:19是指: RepeatableAsyncTask.java:43: 编辑2:
我有一种方法,可以按照班级团队中的国家对数据库中的数据进行排序。Hibernate在列表中返回我的数据 我的错误日志: 我的冠军联赛课程: 我的班级: }
我有JSON文件看起来像 所以这个键是一个字符串“SUBS_ID”,这个值是一个名为Feature细节的模型,它包含属性“特性设置名称、特性名称、...”。所以我用这样google.json库从JSON文件中读取, 然后我试图循环这个HashMap获取值,并将其转换为我的Feature细节模型, 这是我的FeatureDetails模型, 但我得到了一个例外"com.google.gson.int
问题内容: 我有MainActivity类,该类具有实例化ApplicationBar的方法,所有其他Activity都从此继承,因此他们可以使用此方法。 但是我也有一个MapHolder类,它必须从xml中扩展,因为它使用来显示地图。问题是如果我从不显示ApplicationBar选项卡扩展它,并且从MainActivity扩展它而不显示地图,则出现此错误: 问题答案: 您正在尝试将a强制转换为
问题内容: 我收到以下异常。 造成原因: java.lang.ClassCastException:无法将java.math.BigInteger强制转换为java.lang.Integer 用下面的代码 在这条线 有人知道吗? 问题答案: 您可以使用: 或者也许覆盖了和价值观。
问题内容: 我长期困扰这个问题。我有一段时间搜索此问题,但没有解决方案。 结构体: 我也用我 在我的。 请提供有关如何解决此问题的一些信息。 问题答案: 从中删除注释并使其: 发生您的问题是因为的特化,这意味着Spring将尝试创建注入实例。由于superclass()不是通用的,因此您无法将其向下转换为,因此这行代码将失败(与尝试使用手动实例化该代码的方式相同): 专业课仍应使用注释。当spri