java - CheckStyle 模块 "NeedBraces"可以使用嵌套的 if/else block 吗?

标签 java coding-style checkstyle

我们正在使用 CheckStyle执行我们的风格标准。我们选择包含的样式规则之一是 NeedBraces 模块。

NeedBraces 指定每个 block 类型语句(例如 ifelsefor)都必须有左大括号和右大括号。但是,据我所知,它并没有完全正常工作。

此示例将触发 CheckStyle 错误。

    if (true)
    {
        System.out.println("20");   
    }
    else
        System.out.println("30");

因为 else case 没有大括号。但是,下一个示例无法触发 CheckStyle 错误。

    if (true)
    {
        System.out.println("20");   
    }
    else
        if (true)
        {
            System.out.println("30");
        }

这应该会失败,因为 else 情况下缺少大括号,但 checkstyle 让它通过了。仔细检查文档后,我找不到任何无法正常工作的原因。

所以... CheckStyle 模块“NeedBraces”能否与嵌套的 if/else block 一起使用? 有什么想法吗?


这个问题的答案是another question : 是否有将上述不良代码标记为违规的规则?

最佳答案

我认为这是一个异常(exception),因为尽管格式很奇怪,但您拥有的是“else if”。在这种情况下,它不应该强制你在“if”周围加上大括号,因为你最终会得到“... else { if { ... } }

你的代码应该被格式化:

if (true)
{
    System.out.println("20");   
}
else if (true)
{
    System.out.println("30");
}

关于java - CheckStyle 模块 "NeedBraces"可以使用嵌套的 if/else block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/382633/

相关文章:

java - 从 JSON 获取数据

java - Java中滚动后的矩形条

使用 gnu-crypto jar 使用 Whirlpool 算法加密密码的 Java 示例

c++ - 分配给一个对象

gradle - 如何在gradle 2.2+中的根项目中指定checkstyle config的相对路径

gradle - 无法在Gradle中运行多个插件

java - 如何使用 maven 创建基于 spring 的可执行 jar?

c++ - 使用类模板参数比使用实例变量有什么好处?

c++ - 在头文件中包含 "using namespace"语句是否可以?

java - Maven checkstyle插件: Caused by: com. puppycrawl.tools.checkstyle.api.CheckstyleException