Java Maven checkstyle插件给出了错误的;参数s应为最终参数;,甚至连s都被修改了

Java Maven checkstyle插件给出了错误的;参数s应为最终参数;,甚至连s都被修改了,java,maven,checkstyle,Java,Maven,Checkstyle,我们正在使用maven checkstyle插件。下面是pom.xml配置 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.17</version> <configuration>

我们正在使用maven checkstyle插件。下面是pom.xml配置

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.17</version>
    <configuration>
        <configLocation>sun_checks.xml</configLocation> 
        <encoding>UTF-8</encoding>
        <consoleOutput>true</consoleOutput>
        <logViolationsToConsole>true</logViolationsToConsole>
        <failsOnError>true</failsOnError>
        <failOnViolation>true</failOnViolation>
        <violationSeverity>error</violationSeverity>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>7.8.1</version>
        </dependency>
    </dependencies>  
    <executions>
        <execution>
        <phase>validate</phase>
        <goals>
        <goal>check</goal>
        </goals>
        </execution>
    </executions> 
</plugin> 
现在,
mvn clean package
给出了以下控制台消息

[错误] /work/checkstyle/teststyleguide/src/main/java/com/comp/teststyleguide/A.java:5:12: 参数s应为最终参数。[最终参数]


您不应该重新分配参数

Checkstyle为您不希望将参数设置为final的情况提供了一个单独的选项

从JavaDoc:

不允许分配参数

理由:参数分配通常被认为是拙劣的编程 练习。强迫开发人员将参数声明为final通常是错误的 繁重的进行检查以确保从未分配参数 这两个世界都是最好的


您不应该重新分配参数

Checkstyle为您不希望将参数设置为final的情况提供了一个单独的选项

从JavaDoc:

不允许分配参数

理由:参数分配通常被认为是拙劣的编程 练习。强迫开发人员将参数声明为final通常是错误的 繁重的进行检查以确保从未分配参数 这两个世界都是最好的


在方法中重新指定方法参数值不是好的编程实践

检查方法、构造函数和catch块的参数是否正确 最终的未检查接口、抽象和本机方法: final关键字对于接口、抽象和本机没有意义 方法参数,因为没有可以修改参数的代码

理由:在执行过程中更改参数值 该方法的算法可能会令人困惑,应避免使用。伟大的 让Java编译器阻止这种编码风格的方法是声明 最终参数


您可以在checkstyle文档中找到更多信息

在方法中重新指定方法参数值不是好的编程实践

检查方法、构造函数和catch块的参数是否正确 最终的未检查接口、抽象和本机方法: final关键字对于接口、抽象和本机没有意义 方法参数,因为没有可以修改参数的代码

理由:在执行过程中更改参数值 该方法的算法可能会令人困惑,应避免使用。伟大的 让Java编译器阻止这种编码风格的方法是声明 最终参数

您可以在checkstyle文档中找到更多信息

package com.comp.teststyleguide;

public class A {

  public A(String s) {
    s = "test1";

  }

}