通过方法而不是通过构造函数应用上下文

Applying context through method but not through constructors

我在 Android 中阅读了有关 context 的内容,并在我的 android application.But 中使用,然后我想到了一个想法。那,为什么我们只在 constructor 中传递 context 而不是一些 method,类似 component.setContext(context) 的东西,其中 component 是一个假设的组件并且 setContext是一个假设的方法,上下文可以是getConetxt/this/getApplicationContext(根据要求)。

如果有人认为标题或任何内容不合适,他们可以change/edit。

请帮助我理解it.Thanks

如果您通过构造函数或任何 setter 方法传递 Context,则两者基本上相同。

仍然需要在 class 中引用 Context ,这将在创建对象期间通过构造函数进行初始化或者稍后将通过任何 setter 方法初始化。

在这两种情况下,上下文引用仍然存在。这只是一个关于 eager initializationlazy initialization 的问题。

但是在急切初始化的情况下,在访问 class 中的 Context 时,您可以确定上下文已经被肯定地初始化并且您可以安全地使用它。

但是在惰性初始化的情况下不能保证这一点。作为尺寸说明,请检查两种类型上下文的差异 - Application contextActivity context.