Classname.this.memberName vs memberName

时间:2016-11-24 12:00:43

标签: java android member static-members

获取方法MyFragment.this.mFragmentmFragment之间的区别是什么?我在父类中有一个成员

private Fragment mFragment;

我在内部课程中尝试过这项检查

if (mFragment instanceof SecondFragment) { if (MyFragment.this.mFragment instanceof SecondFragment) { some code... } }

Studio没有告诉任何错误,第二次检查始终是真的。为什么?

2 个答案:

答案 0 :(得分:0)

您的情况可能没有区别。这取决于具体情况。 mFragment instanceof SecondFragment指的是当前类的实例变量(成员)。我假设你在MyFragment的某些方法中使用了你的代码片段。

MyFragment.this.mFragment也可以在那里工作,但它也适用于内部类。那些可能是显式内部类(同一个.class文件中的另一个类)以及匿名内部类,一个监听器等。你必须使用 MyFragment.this.mFragment

答案 1 :(得分:0)

反编译.class文件并验证它。 您可以在内部类中找到可用于访问外部类行为的引用。