class MyClass
{
companion object
{
lateinit var user:User
}
init
{
//initialize if not initialized
//user.isInitialized
user = User
}
}
只需使用一个可空变量。
class MyClass {
companion object {
val user get() = user_ ?: throw UninitializedPropertyAccessException("property has not been initialized")
private var user_: User? = null
}
init {
if (user_ == null) user_ = User()
}
}
现在您可以访问该属性:
MyClass.user.example()
class MyClass {
companion object {
var user: User? = null; private set
}
init {
if (user == null) user = User()
}
}
MyClass.user?.example()
我想知道是否有一种方法可以检查变量是否已经初始化。例如:
我想知道是否有办法检查变量是否已初始化。例如:
我有一个抽象类及其具体子类,当我创建子类的对象时,它会自动调用超级构造函数。JVM是否在内部创建抽象类的对象? 那么在JVM中没有对象的情况下构造函数是如何存在的??(对于抽象类) 同样,构造函数在创建对象之后执行,然后不创建抽象类的对象,默认构造函数是如何执行的??(这在Java文档中有所提及)
如何检查ArrayList中的值是否包含一组特定的字母? 比如如何检查值是否包含字符串“Axe”?
问题内容: 虽然这两个给我相同的结果,但在内部或外部安装过滤器有什么区别?在表现或幕后动作方面是否有所不同? 问题答案: 在查询中过滤 Elasticsearch将以更有效的方式执行查询和过滤,以减少结果集并尽快获得答案。这称为filtered_query 查询后过滤 首先运行查询, 然后对 结果进行过滤, 然后 再将其返回给客户端。这称为post_filter。 尽管post_filter的效率
问题内容: 我的Java应用程序使用两个线程。从历史上看,有同步方法和专用锁对象在使用。我需要知道当前线程是否具有锁,以及它是按方法还是按对象。我怎样才能做到这一点? 问题答案: 输入同步方法时,VM会在当前对象上设置锁定。因此,以下代码具有相同的效果: 这意味着同步方法与 您代码中的任何地方。 您可以用来检查线程是否持有特定的锁。这是示例代码: 从Java 1.5开始,该软件包支持诸如Reent