分类器JSONObject没有'companion对象,因此必须在此处初始化

时间:2018-10-10 17:54:53

标签: java intellij-idea kotlin companion-object

import org.json.JSONObject
JSONObject deviceInformation = ...

enter image description here

我试图创建一个这样的伴随对象,但是并没有真正起作用……对不起,Java和Kotlin中的noobie...。 enter image description here

是的,可以使用

正确导入JSONObject。

import org.json.JSONObject

1 个答案:

答案 0 :(得分:2)

您使用的语法不正确。 Kotlin中的变量声明如下:

[var/val] name: OptionalExplicitType = something

这表示不允许JSONObject var instance:...

将其更改为:

var instance: JSONObject = ...

设置它也很重要。由于您似乎要创建一个单例,因此可以只使用object而不是类。

如果您想以老式的方式进行操作,请将其设置为可空:

var instance: JSONObject? = null

然后检查它是否为空,对其进行初始化,设置和返回,否则返回当前值。

如果这不是您的目标,则仍然需要对其进行初始化,除非您将其设为lateinit。但是,如果这样做,则需要在尝试访问它之前对其进行初始化,否则它将引发异常。