gpt4 book ai didi

java - ClassName.this 和 Context Class 之间有什么关系?

转载 作者:行者123 更新时间:2023-12-01 12:38:51 26 4
gpt4 key购买 nike

我正在学习AndroidComponentName,android书上的例子是:

ComponentName componentName = new ComponentName(
ComponentAttrActivity.this, SecondActivity.class);

它用于由第一个 Activity 创建第二个 Activity ,我对第一个参数感到困惑:ComponentAttrActivity.this。我查了一下StackOverflow,大多数答案都是关于为什么是ClassName.this而不仅仅是this,但我想知道的是的类型之间有什么关系Class.thisContext,我假设上面的 ComponentName 构造函数适合下面的第三个构造函数

它有 3 个 2 参数构造函数:

ComponentName(String pkg, String cls)
ComponentName(Context pkg, String cls)
ComponentName(Context pkg, Class<?> cls)

我检查了Android API的Context,仍然没有线索......

Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.

谁能帮我解释一下吗?

最佳答案

ClassName.this让内部类引用其封闭类的实例。在您的情况下,它是一个类的实例,该类是 Context 的子类。 (例如, ActivityContext 的子类,因此也是 Activity 的任何子类),因此可以作为 Context 传递参数。

如果你的构造函数调用new ComponentName(ComponentAttrActivity.this, SecondActivity.class);内部类的代码中不包含,可以使用new ComponentName(this, SecondActivity.class);相反。

关于java - ClassName.this 和 Context Class 之间有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25313054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com