我一直在使用領域中的應用程序,我目前正在開發,並發現自己一次又一次地打字了這種模式:我可以將Realm.getDefaultInstance()。executeTransaction([transaction])作爲「單線程」嗎?
try (Realm realm = Realm.getDefaultInstance()) {
realm.executeTransaction(tRealm -> {
// Execute some transaction in here
});
}
雖然它不是完全醜陋的,我喜歡的事實,在try-與資源關閉realm
對我來說,我發現自己想知道這將足以簡化到這樣的事情:
Realm.getDefaultInstance().executeTransaction(tRealm -> {
// Execute some transaction in here
}
我寧願這不僅因爲它是嵌套少了一個級別,因爲那時我沒有得到一個Realm的實例,只是爲了調用executeTransaction()
,然後給我一個不同的 Realm實例使用。
但是我還沒有切換到第二個片段,因爲我擔心它的Realm.getDefaultInstance()
部分會導致我的問題(因爲我沒有爲它調用close()
)。我的思想是否正確,因此應該繼續使用第一個片段,或者我可以使用第二個片段嗎?
Ahh看到了,我認爲ref-counting會是一個問題,但我甚至沒有想到你列出的其他東西。那麼我肯定會堅持第一種模式,謝謝你的迅速和詳細的答案! –