格式是否在Java中的某种约定下面?我个人发现它比第二个例子更难阅读。我一个人在这里吗?在选择Source时,有没有办法在NetBeans中进行这样的自定义格式化?>格式?
public boolean handleEvent(Event e) {
if (e.target == quit) System.exit(0);
else if (e.target == parent) {
// Code here
// Bug workaround
}
catch (IOException ex) { infoarea.setText("I/O Error"); }
return true;
}
(第二个例子)
public boolean handleEvent(Event e)
{
if (e.target == quit) System.exit(0);
else if (e.target == parent)
{
// Code here
// Bug workaround
}
catch (IOException ex) { infoarea.setText("I/O Error"); }
return true;
}
答案 0 :(得分:7)
维基百科有一个whole article about indentation style。 Oracle已设置Java coding conventions和style guide PDF。确实这是一个品味问题,但是特定于Java的指导原则使得所有Java代码都可以被其他Java开发人员快速,易懂地理解和维护。我讨厌在Java代码中看到C#样式,但反过来说,我也讨厌在C#代码中看到Java风格。对Java代码使用Java样式,对C#代码使用C#样式。它让每个人都清楚一切。
你的例子没有编译,但假设确实没有try
,这就是人们如何用干净的Java方式做到这一点:
public boolean handleEvent(Event e) {
if (e.target == quit) {
System.exit(0);
} else if (e.target == parent) {
// Code here
// Bug workaround
} catch (IOException ex) {
infoarea.setText("I/O Error");
}
return true;
}
您展示的第一种风格与banner style非常相似,第二种风格与GNU style非常相似(有点类似于Allman / C# style。
答案 1 :(得分:3)
虽然给定的代码没有编译,但我假设您正在讨论在类/方法/命令的同一行使用开括号,而不是在使用之前使用新行?
如果是这样,那真的是一个非常主观的事情 - 我个人讨厌把我的牙套放在一个新线上;对我来说,这对你来说是同样的错误。唯一重要的是要确保如果你在团队中工作,你们都坚持相同的惯例 - 这件事没有真正的对错。
答案 2 :(得分:2)
我认为两个示例中的格式都难以阅读,并且与大多数传统样式相比。
答案 3 :(得分:2)
使用Java代码约定来配置IDE样式 http://www.oracle.com/technetwork/java/codeconvtoc-136057.html
答案 4 :(得分:1)
我假设您正在讨论是否将{
置于新行,并忽略了catch
没有try
的事实
是的,前者在Java中绝对是惯例,而后者在C#中是惯例(尽管在两个示例中你的缩进看起来都有点偏差)。
我同时使用它们(在各自的语言中),一旦你习惯了它,我真的不认为可读性有很大差异。这是主观的,但你的问题的答案只是“是的。”
答案 5 :(得分:1)
由Sun开始的Java编码约定现在由Oracle继续说:
如果应该是always use braces而开放式大括号应该是in the same line as the declaration
同样,这些只是约定,而不是编译规则。如果你的团队选择不同,最重要的是每个人都遵循它(即使它是你不喜欢的风格)。但是如果使用Java的首选,那么新的人总是会更容易选择编码风格。
我使用的一个例外,if是if / try惯用法。
修改代码将是这样的:
public boolean handleEvent(Event e) {
if (e.target == quit) {
System.exit(0);
} else if (e.target == parent) try { // if/try idiom
// Code here
// Bug workaround
} catch (IOException ex) {
infoarea.setText("I/O Error");
}
return true;
}
关于netbeans配置,我认为选项在:
“工具/选项,点击编辑器图标,然后选择格式化标签,更改大括号展示位置。”
但是,我现在手头没有netbeans。