【发布时间】:2018-04-19 16:16:48
【问题描述】:
我正在关注这篇文章 https://proandroiddev.com/detecting-when-an-android-app-backgrounds-in-2018-4b5a94977d5c 来实现 android 生命周期,但在一个遗留应用程序上具有 java 上的 Application 类。
如何在 java 中实现这个 kotlin 代码?
private val lifecycleListener: SampleLifecycleListener by lazy {
SampleLifecycleListener()
}
我觉得这是一个愚蠢的问题,但我不熟悉延迟初始化,我不知道如何搜索这个问题,任何“延迟理论链接”也将受到欢迎。
【问题讨论】:
-
Lazy Initialization in Kotlin 比较 Java 和 Kotlin。 (对
kotlin lazy的简单网络搜索很容易找到,所以“不知道如何搜索”听起来像是“懒得去搜索自己”,没有双关语) -
看看这个问题:Lazy field initialization with lambdas (java 8)
-
延迟加载未内置在 Java 中。您必须自己实现它(如下面的答案)或使用为您完成它的库(例如 Spring)。似乎有一个 Android 延迟初始化库,因为它是一种相当直接的代理技术。
-
@Andreas 你的链接是金子,谢谢你,我真的做了我的搜索,但主要结果是关于 lateinit 与 lazy 等。可能我没有输入你的建议,因为我认为它是关于如何以及何时使用延迟初始化的另一种解释,所以我可能忽略了它。也许你对听起来“不确定如何搜索”是真的,我尽量避免回答“先搜索再问!”没有有用的内容。不是你的情况,现在我对懒惰有了更多了解:)