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.新的
适用于非静态。我遇到了同样的问题,因为在接口中定义了一个内部类。这意味着默认情况下该类必须是静态的。我遇到了相同的问题,因为在接口中定义了一个内部类。这意味着默认情况下该类必须是静态的。