Java中的可选参数(可以为null)

时间:2018-08-19 11:38:39

标签: java

我有一个带有布尔参数的函数,但是它也可以为null。

如果为true或false,则使用“ WHERE”子句进行查询。如果它为null,则查询没有“ WHERE”子句,只有select子句。

如何用Java做到这一点?

3 个答案:

答案 0 :(得分:5)

使用Boolean

public String foo(Boolean addWhere){
    String query = "SELECT * FROM tbl";
    if(addWhere != null){
        query += (addWhere? " WHERE true" : " WHERE false");
    }
    return query;
}

按以下方式调用

String q = foo(false);

答案 1 :(得分:2)

您可以使用java.lang.Boolean;这是原始布尔值的包装器类。该值可以为null,Boolean.TRUE或Boolean.FALSE,但是由于自动拆箱,您还可以直接将true和false进行比较。

答案 2 :(得分:1)

有几种方法可以做到:

  • 声明两个函数,一个具有一个boolean参数,另一个没有参数。
  • 使用Optional<Boolean>参数声明一个函数。
  • 使用Boolean参数声明一个功能,其中null是未指定的情况。