Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 片段内包含非法实例_Java_Android_Class - Fatal编程技术网

Java 片段内包含非法实例

Java 片段内包含非法实例,java,android,class,Java,Android,Class,我有以下代码: 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 enclosin

我有以下代码:

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

此代码块位于
片段内的静态方法内
片段活动内的
片段(非静态)。我不知道如何声明这个
a
var?将此设置为
静态调用也不是一个选项。。。如何获取对
MainFragmentActivity
实例的引用?

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

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

我相信,如果将内部类MasterFrag声明为静态,则会出现此编译错误。实例化它的正确方法是:

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

你到底想做什么?你已经为
MainFragmentActivity
创建了实例,你还在问怎么做?如果你还没有导入类,如果你想创建封闭类的实例,你就不能从这里得到。静态方法存在于任何
片段
活动
之外,因此您无法获得对
MainFragmentActivity
的引用-不一定会有引用。我同意@HeikoRupp的观点,看看你想做什么,找到另一种方法。或者,在没有关于您的具体案例的进一步信息的情况下,如果您要从所讨论的方法中删除
static
修饰符,您可以使用
getActivity()
@kickinggreen的解释非常恰当地访问所包含的
活动。如果类是
静态的
,则使用我的方法,因为静态类不需要其封闭的父类实例<代码>a.新的
适用于非静态。你到底想做什么?你已经为
MainFragmentActivity
创建了实例,你还在问怎么做?如果你还没有导入类,如果你想创建封闭类的实例,你就不能从这里得到。静态方法存在于任何
片段
活动
之外,因此您无法获得对
MainFragmentActivity
的引用-不一定会有引用。我同意@HeikoRupp的观点,看看你想做什么,找到另一种方法。或者,在没有关于您的具体案例的进一步信息的情况下,如果您要从所讨论的方法中删除
static
修饰符,您可以使用
getActivity()
@kickinggreen的解释非常恰当地访问所包含的
活动。如果类是
静态的
,则使用我的方法,因为静态类不需要其封闭的父类实例<代码>a.新的
适用于非静态。我遇到了同样的问题,因为在接口中定义了一个内部类。这意味着默认情况下该类必须是静态的。我遇到了相同的问题,因为在接口中定义了一个内部类。这意味着默认情况下该类必须是静态的。