我已经在单例中设置了JsonArray:
$(document).ready(function(){
/********/
let variable = $("#your_variable_id").val();
/*********/
});
然后我尝试从RV列表中删除该对象的项,但是由于该数组为空,因此无法获得该数组的任何值:
try {
obj.addProperty("filename", name)
obj.addProperty("data", data)
oldArray.add(obj)
sn.array = oldArray
getImages()
} catch (e: JsonIOException) {
e.printStackTrace()
}
我不明白为什么会发生以及如何解决这个问题。在单例中,我看到了该数据,但是当我尝试获取它时,我看到该数组完全为空。为什么会发生,我又做错了什么?也许我的jsonArray值在我的单身人士中有错误的字段:
Singleton sn = new Singleton();
JsonArray array = sn.getArray();
if (Objects.requireNonNull(array).size() > 0) {
}
希望这个问题比对我来说容易:)
答案 0 :(得分:1)
单例的目的是您只有该类的一个实例。在您的情况下,您每次访问它都会创建一个单例类的新实例。显然,它为空。相反,您应该做的是这样的事情:
class Singleton {
public static final Singleton INSTANCE = new Singleton();
// The rest of its members
}
然后您通过以下方式访问它:
Singleton.INSTANCE
这样,您就只能拥有一个类的实例。当然,还有其他方法可以在Java中创建单例,这只是最简单的方法。
在Kotlin中,您可以简单地编写
object Singleton {
// Singleton members
}