我想知道使用资源格式化try块的代码约定是什么,特别是使用多个资源。目前我将每个资源放在它自己的行上,以分号结束,并使用vim的缩进级别(2个制表符),如下所示:
try (
InputStream in1 = ...;
InputStream in2 = ...;
) {
...;
}
我也看到人们使用分号作为分隔符而不是终结符,并且只在每个资源之间使用换行符,如下所示:
try (InputStream in1 = ...;
InputStream in2 = ...) {
...;
}
约定是什么?
答案 0 :(得分:4)
没有"对"或"错误"当涉及美学时;每个组织最终都会融合自己的编码风格。但是,经常从知名项目或组织借用编码样式。
最常用的Java代码库之一是JDK本身。在几次greps之后,我在OpenJDK 8 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中可能还有其他一些例子,但一般来说,这些人都非常认真地坚持他们的指导方针,因此我怀疑它们会有所不同)。