gpt4 book ai didi

java - 语句标签的缩进检查无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:28 24 4
gpt4 key购买 nike

checkstyle中,我启用了缩进检查。我遇到了一个奇怪的问题。

检查对于除语句标签之外的所有内容都工作正常。

我有一个如下代码片段:

    public void doIt(int k) {
for (int i = 0; i < k; i++){
search:{
for (int j = 0; j < i; j++){
if (j == i){
break search;
}
}
}
}
}

缩进级别设置为4。

现在,如果我将语句标签(搜索) 置于第 11 级,它应该给出一个警告,如下所示

- label child at indentation level 11 not at correct indentation, 12

但问题是,它在该行给出了多个标记:

- label child at indentation level 11 not at correct indentation, 12
- label child at indentation level 11 not at correct indentation, 8

因此,无论我在哪个级别缩进标签,总会有一个/两个警告。

没有启用对两个不同缩进级别的缩进的重复检查。

我如何在一次检查中收到两个警告?如何解决这个问题?

最佳答案

这是 IndentationCheck 的限制。标签缩进被硬编码为比树中此时的正常缩进少一级(通过查看 Checkstyle 5.6 sources 进行验证)。下一个标记(左花括号,或者如果省略大括号,则为 for 语句)必须处于预期级别。所以你可以像这样格式化代码而不会出现错误:

public void doIt(int k) {
for (int i = 0; i < k; i++){
search:
for (int j = 0; j < i; j++){
if (j == i){
break search;
}
}
}
}

这当然是个人品味的问题,但我不喜欢。我建议不要使用 Checkstyle 来检查格式,而是使用自动代码格式化程序。例如,Eclipse 内置了一个很好的格式化程序。

关于java - 语句标签的缩进检查无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18308208/

24 4 0