对于用户代码,有几个选项可以正确关闭多个资源:
try (
A a = new A();
B b = new B();
C c = new C()
) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
除了好而简短之外,这也是正确的。
a,b而c需要关闭。try/finally此处的改进,可以在此处阅读https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose .html)Closer对于JDK7之前的版本,有Guava Closer,其用法如下:
Closer closer = Closer.create();
try {
A a = closer.register(new A());
B b = closer.register(new B());
C c = closer.register(new C());
// ...
} catch (Throwable e) { // must catch Throwable
throw closer.rethrow(e);
} finally { …Run Code Online (Sandbox Code Playgroud) 如果 Firestore 事务失败,它会抛出FirestoreException异常,仅显示“事务因重试次数过多而被取消”。
即使我将退休数设置为 1,也没有根本原因或任何其他线索。
是否有可能找到根本原因?
我有一个使用 Datastore 的现有 Google Cloud 项目。我对 Firestore 感到很兴奋,并想切换。根据https://www.youtube.com/watch?v=SYG-BgXoJFQ建议创建一个新项目。
是否有可能以某种方式核对数据存储(我不关心数据)并从头开始使用 Firestore?
如果不是,创建一个新项目有什么影响?
在Kotlin,我们可以选择:
class|object X {
[override] val y = Z
}
Run Code Online (Sandbox Code Playgroud)
和
class|object X {
[override] val y: Y
get() = Z
}
Run Code Online (Sandbox Code Playgroud)
应该选择哪一个?何时选择?