非法将实例封装在片段中



我有这个代码:

MainFragmentActivity a = new MainFragmentActivity();
MainFragmentActivity.MasterFrag mm = a.new MasterFrag(); // a.new
MainFragmentActivity.MasterFrag.MasterTask e = mm.new MasterTask();
e.execute();

在上面引用的a.new行上,它存在a的问题。上面写着:

Illegal enclosing instance specification for type MainFragmentActivity.MasterFrag

此代码块位于Fragment内部的静态方法内部(非静态),位于FragmentActivity内部。我不知道如何声明这个a变量?将其作为static调用也不是一种选择。。。如何获取对MainFragmentActivity实例的引用?

如果内部类MasterFrag被声明为静态的,我相信您会得到这个编译错误。实例化它的正确方法是:

MainFragmentActivity.MasterFrag mm = new MainFragmentActivity.MasterFrag();

最新更新