java - 当传递给 Intent 构造函数时,从事件处理程序传递 this 与 ClassName.this 有什么区别?

标签 java android event-handling commonsware

在早期的 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/

相关文章:

java - 使用 jersey-spring3 和现有的 Spring 应用程序上下文来休息 web 服务

java - Scene2d - 旋转 Actor 未按预期翻译

android - 如何从服务类调用 Activity

java - 你能在不同的线程上调用相同的方法吗?

c# - 线程引发事件被处理程序阻止?

java - 如何应用牛顿拉夫森法求五次函数的根

java - 为什么我无法在 'SettingActivity' 中获取个人资料图片?

适用于手机的 Android 条件布局 :tablets

javascript - 在 Fabric JS 上大写文本输入

javascript - 什么是 "event emitter"?