[当方法的参数数量超过7时,checkstyle错误(即,超过7个参数(找到8个)。 [ParameterNumber])将被抛出。因此,对于下面的方法,它也会抛出异常。 通常,可以通过使用String数组或Hashmap避免checkstyle错误。
但是,如何避免在这里成为具有@Optional批注的方法参数呢?
@Parameters({ "test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8" })
@BeforeTest
public void beforeTest(@Optional("value1") String test1, @Optional("value2") String test2, @Optional("value3") String test3, @Optional("value4") String test4, @Optional("value5") String test5, @Optional("value6") String test6, @Optional("value7") String test7, @Optional("value8") String test8) {
....
}
一种方法是增加checkstyle.xml中的参数限制。
但是,寻找是否有更好的解决方案。
您的选择是:
1)禁用检查,并且不验证方法中的参数数量。
2)增加max
进行检查,从而使所有方法都具有新的限制。
3)使用此位置的过滤器抑制违规行为。 https://checkstyle.org/config_filters.html。如果要定位使用Optional
的方法,那么我将尝试使用https://checkstyle.org/config_filters.html#SuppressionXpathFilter。
您可以创建一个包含您的参数的包装器类。
public class ParameterObject {
private String test1;
private String test2;
private String test3;
private String test4;
private String test5;
private String test6;
private String test7;
private String test8;
public ParameterObject() {
super();
}
public void setTest1(String test1) {
this.test1 = test1;
}
public String getTest1() {
return test1;
}
//add more getter and setter.
}
public void beforeTest(ParameterObject parameters) {
//access parameters with:
parameters.getTest1();
//...
}
您还可以将构建器模式与此包装器类一起使用。
您可以使用varargs。这样就可以将数组指定为不包含任何参数的参数。