格式化 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中可能还有其他的例子,但总的来说,这些人都是认真遵守他们的准则的,所以我怀疑他们会有所不同。
我想知道格式化带有资源的 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中可能还有其他的例子,但总的来说,这些人都是认真遵守他们的准则的,所以我怀疑他们会有所不同。