我有一个类文件
public class TMDB_Async {
public class GetGenres extends CustomAsyncTask<Object, Void, String> {...}
public class GetMovies extends CustomAsyncTask<Object, Void, String[][]> {...}
}
注意:这是有意义的:
public abstract class CustomAsyncTask<T,T,T> extends AsyncTask<T,T,T> {...}
然后我想使用它......类似于:
new TMDB_Async.GetGenres(textView).execute(id);
但是 red-squiggly highlight 告诉我TMDB_Async
不是封闭的类。它邀请我进行静态导入,它会自动生成为xyz....TMDB_Async.*
,但这并不能解决问题。如果我指定xyz...TMDB_Async.GetGenres
,则最后一位全部为红色。如果我删除static
,它也无法解决我的问题。所以我在这里做错了。
编辑:我想把它变成单身,添加代码:
private static TMDB_Async mInstance = null;
private TMDB_Async(){
mInstance = new TMDB_Async();
}
public static TMDB_Async getInstance() {
if (mInstance == null) {
Class clazz = TMDB_Async.class;
synchronized (clazz) {
mInstance = new TMDB_Async();
}
}
return mInstance;
}
但这实际上也无法解决问题。
如何正确设置?
答案 0 :(得分:1)
您的内部课程GetGenres
和GetMovies
必须为static
。
非static
内部类只能从父对象实例化。