Java-将char变量传递给方法并返回布尔值?

Java-将char变量传递给方法并返回布尔值?,java,Java,您好,我对Java非常陌生,我想知道是否可以将一个字符传递给一个方法,然后如果该字符有效,则返回true 我有这个方法: public void btnColor(char c) { if (hm.getHiddenWordUpdated().contains(String.valueOf(c))) { // Change button color } } 我想要的是这样的东西,尽管它不允许我这样做: public boolean btnColor(char c

您好,我对Java非常陌生,我想知道是否可以将一个字符传递给一个方法,然后如果该字符有效,则返回true

我有这个方法:

public void btnColor(char c) {
    if (hm.getHiddenWordUpdated().contains(String.valueOf(c))) {
        // Change button color
    }
}
我想要的是这样的东西,尽管它不允许我这样做:

public boolean btnColor(char c, boolean b) {
    if (hm.getHiddenWordUpdated().contains(String.valueOf(c))) {
        return true;
    }
}

因此,它接受一个字符变量
c
,如果有效,则返回true。这类事情有最佳实践吗?

您可以这样做,以便始终返回一些值。这在Java中应该是可能的和可接受的

public boolean btnColor(char c, boolean b) {
    if (hm.getHiddenWordUpdated().contains(String.valueOf(c))) {
        return true; // this will return in case of your condition is true
    }
    return false; // this will return otherwise.
}

所有代码路径都需要返回一个值

public boolean btnColor(char c, boolean b) {
    if (hm.getHiddenWordUpdated().contains(String.valueOf(c))) {
        // add additional code
        return true;
    }
    return false;
}

当您有
public
boolean
methodName
时,这意味着它必须返回一个boolean。在代码中使用“IF”语句意味着它可以分为两种可能的方式:IF-true和IF-false。您已经声明了真实的声明:

 if (hm.getHiddenWordUpdated().contains(String.valueOf(c))) {
        return true;
因此,您将覆盖解决方案的1/2。但如果它是假的呢?没有什么?这就是问题的原因,所以要解决问题,您的代码应该如下所示:

public boolean btnColor(char c) {
        if (hm.getHiddenWordUpdated().contains(String.valueOf(c))) {
            return true;
        } else {
           return false;
    }
现在,如果它包含字符,则返回TRUE,如果它不包含字符,则返回FALSE。

尝试这一行

public boolean btnColor(char c, boolean b) {
   return hm.getHiddenWordUpdated().contains(String.valueOf(c));
}

它将返回
true
false

或者,您可以在一行中使用条件:

public boolean btnColor(char c) {
    return (hm.getHiddenWordUpdated().contains(String.valueOf(c))) ? true:false;
}

关闭if块后,需要提供返回false。对于所有可能的流,该方法需要返回一个布尔值
return hm.getHiddenWordUpdated().contains(String.valueOf(c))@Stultuske:没有。他只需要一行,你也不需要额外的
boolean
参数,更改返回类型是对签名所需的全部修改。您的问题表明,阅读一些Java教科书和教程的介绍会对您有所帮助,因为这些都是非常基本的概念。不太合适:如果计算为真,则返回为真,如果不返回false==>返回计算为easier@azro如果要在if语句块中添加一些附加代码,则需要添加if语句。。。