在早期的 Android 编程教程第 192 页中,我们看到了 LunchList#onOptionsItemSelected
的实现。在此实现中,我们看到两个 Intent
传递给 startActivity
:一个的构造函数传递给 LunchList.this
,另一个的构造函数传递给 这个
。
有什么区别?
See lines 78 - 91 here .请注意 onOptionsItemSelected
不是在内部类中声明的。
在 Android/Java 中,this
的值是否会在事件处理程序或函数绑定(bind)的上下文中通过反射发生变化?两个 Intent
实例都可以传递 this
吗?
最佳答案
在Java中,this
指的是包含类,ClassName.this
指的是名称为ClassName
的第一个包含类。事件处理程序通常编写为匿名内部类,因此如果您想引用事件处理程序的包含类(而不是事件处理程序的类),则需要指定 ContainingClass.this
,而不是 这个
。
引用:http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.8.4
关于java - 当传递给 Intent 构造函数时,从事件处理程序传递 this 与 ClassName.this 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12594229/