检查样式错误不允许指定参数

时间:2016-01-29 00:23:21

标签: java

是的,我知道还有另一个类似的问题,但我的问题是我的参数是对象。

public void serStuff(OBJ x, OBJ y)

if (x== null)
{
    x = ANOTHER_VALUE;
}
if(y == null)
{
    y = ANOTHER_VALUE2;
}

所以它不喜欢我分配参数,但我该如何解决这个问题呢?我会在本地放置另一个对象吗

2 个答案:

答案 0 :(得分:0)

修复它的最简单方法就是停止分配参数,因为从该方法返回后它无论如何都没有效果。

但有时这样做仍然有用,例如:

public void doSomething(String s){
    if (s == null){
        s = "";
    }
    s.callSomeMethodsAvoidingNullPointerException();
}

如果您无法更改checkstyle配置,则可以创建另一个变量:

public void doSomething(String s){
    String sNotNull = s;
    if (sNotNull == null){
        sNotNull = "";
    }
    sNotNull.callSomeMethodsAvoidingNullPointerException();
}

这看起来有些笨拙。如果经常出现这种模式,我宁愿更改配置。但这也可能是一种非常主观的观点。

答案 1 :(得分:0)

使用局部变量进行检查。喜欢:

OBJ localX = (x == null) ? ANOTHER_VALUE : x;

然后处理新变量。

因此,您将localX指向同一个对象或新的ANOTHER_VALUE

如果您只需要检查给定参数是否为空,您也可以使用assert(x != null)

另一方面,如果有时您需要确保参数不会被更改,请使用final。这(大致!)相当于C const,编译器" bites"如果你试图改变它。