2016-11-24 11 views
-1

获取方法MyFragment.this.mFragmentmFragment有什么区别?我有一个成员在父类Classname.this.memberName vs memberName

private Fragment mFragment; 

我试过这个检查在内部类

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

工作室是不会告诉任何错误,那第二次检查始终是真实的。为什么?

+0

当第一种情况为真时,第二种情况也是如此。 :-) –

+0

看到父母的成员之间有任何差异? –

+0

请参阅下面的答案 –

回答

0

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

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

0

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

相关问题