Kotlin嵌套对象类

好,所以我现在开始学kotlin一个星期了,我喜欢这个语言:除了扩展功能的伟大功能之外,我觉得他们缺乏像java实用类(xxxUtil)这样的命名空间的创建方法。

我最近开始使用这个问题,我不知道是否正确,我想从Kotlin有经验的用户那里得到一些反馈。

这是一个有效和适当的事情待办事项:

object RealmDb { private val realmInstance by lazy{ Realm.getInstance(MainApplication.instance) } private fun wrapInTransaction(code:() -> Unit){ realmInstance.beginTransaction(); code.invoke() realmInstance.commitTransaction(); } object NormaNote{ fun create(...) {...} fun update(...) {...} } } 

所以,每当我想更新一些正则表达式值到一个Realm数据库,我做了以下几点:

 RealmDb.NormaNote.create(title.text.toString(), note.text.toString()) 

这是常见的事情吗? 有更好的方法吗? 据我了解,这是单身嵌套,我不认为这是有任何问题,我只是不喜欢把这种常见的东西,如需要实例化类中的数据库操作。 在旧的Java我选择静态类

官方推荐的在Kotlin中创建名称空间的方法是将属性和函数放在文件顶层的类中,并使用包语句创建一个名称空间层次结构。 我们看到在Java中创建实用程序类的做法是解决语言缺陷的一个解决方法,而不是在其他语言中遵循的良好实践。

在你的例子中,我会把所有的代码放在顶层函数和属性中。

我不知道其余的代码,但我知道你不必在code调用.invoke () 。 调用方法总是可以缩短为直接调用,在这种情况下,调用方法是code ()