- Array Trailing Comma
Array should contain trailing comma.
我的代码包含:
RECOVER_PASSWORD(new String[] {
RequiredPermissions.USERS_PASSWORD_RECOVER,
RequiredPermissions.USER_RETRIEVE,
RequiredPermissions.API_USER_RETRIEVE,
RequiredPermissions.ONETIMELINK_CREATE,
RequiredPermissions.API_ONETIMELINK_CREATE,
RequiredPermissions.PASSWORD_RECOVER,
RequiredPermissions.API_PASSWORD_RECOVER }),
为什么要插入尾随逗号?
答案 0 :(得分:17)
为什么要插入尾随逗号?
你不需要。我怀疑Sonar应该在那里发出警告。
这取决于程序员的偏好他喜欢什么。在数组末尾添加一个尾随逗号,可以很容易地从数组中删除或添加任何条目。
所以,如果你有一个像:
这样的数组String[] arr = new String[] {
"abc",
"def",
"ghi",
}
添加条目只需要在数组末尾添加带尾随逗号的条目。如果没有逗号,您首先需要添加一个逗号,然后添加元素。
删除元素只需要删除包含该元素的那一行。或者只是评论那条线。
String[] arr = new String[] {
"abc",
"def",
// "ghi", // This won't cause any error
}
如果不允许使用尾随逗号,那么如果删除最后一个元素,则必须先删除逗号。嗯,我知道这个理由很荒谬。但那只是允许的。
这对于代码生成器在生成数组初始化代码时非常有用。他们可以继续在数组中添加带尾随逗号的元素,而不必担心它是否是最后一个元素。
让我们举个例子:
StringBuilder array = new StringBuilder();
array.append("int[] arr = new int[] {").append("\n");
for (int i = 0; i < 10; ++i) {
array.append(i + ",").append("\n");
}
array.append("}").append("\n");
考虑是否允许使用尾随逗号,那么该代码的外观如何。你必须分别处理最后一个元素。所以,它只对代码生成器做得很好。
答案 1 :(得分:5)
尾随逗号可能出现在数组初始值设定项中的最后一个表达式之后,将被忽略。
没有必要。
但是,它有点像样式选择,它可以使重新排序,操作和/或复制粘贴最后一个元素变得更容易。将RequiredPermissions.API_PASSWORD_RECOVER
移动到另一个地方或粘贴到其下方的新条目可能会更容易,因为您不需要添加额外的逗号,并且可能会因错误输入或错误选择而导致语法错误。