格式化 try-with-resources 的代码约定是什么?

What is the code convention for formatting try-with-resources?

我想知道格式化带有资源的 try 块的代码约定是什么,尤其是带有多个资源的代码。目前我将每个资源放在自己的行中,以分号结束,并使用 vim 的缩进级别(2 个制表符),如下所示:

try (
        InputStream in1 = ...;
        InputStream in2 = ...;
    ) {
    ...;
}

我也看到有人使用分号作为分隔符而不是终止符,并且只在每个资源之间使用换行符,如下所示:

try (InputStream in1 = ...;
    InputStream in2 = ...) {
    ...;
}

约定是什么?

没有"right"或"wrong"涉及到审美;每个组织最终都汇聚在自己的编码风格上。但是,经常从知名项目或组织借用编码风格。

最常用的 Java 代码库之一是 JDK 本身。 greps 几次后,我在 OpenJDK 8's java/lang/Package.java:

中找到了一个多行示例
/*
 * Returns the Manifest for the specified JAR file name.
 */
private static Manifest loadManifest(String fn) {
    try (FileInputStream fis = new FileInputStream(fn);
         JarInputStream jis = new JarInputStream(fis, false))
    {
        return jis.getManifest();
    } catch (IOException e) {
        return null;
    }
}

(JDK中可能还有其他的例子,但总的来说,这些人都是认真遵守他们的准则的,所以我怀疑他们会有所不同。