3

我有一个带有布尔参数的函数,但它也可能为空。

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

我怎样才能在 Java 中做到这一点?

4

3 回答 3

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);
于 2018-08-19T11:42:53.697 回答
2

您可以使用 java.lang.Boolean; 这是原始布尔值的包装类。该值可以是 null、Boolean.TRUE 或 Boolean.FALSE,但由于自动拆箱,您也可以直接比较真假。

于 2018-08-19T11:42:47.890 回答
1

有几种方法可以做到这一点:

  • 声明两个函数,一个带boolean参数,一个不带参数。
  • Optional<Boolean>参数声明一个函数。
  • Boolean用参数声明一个功能,其中null未指定的情况。
于 2018-08-19T11:46:35.710 回答