Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的可选参数(可以为null)_Java - Fatal编程技术网

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

java中的可选参数(可以为null),java,Java,我有一个带有布尔参数的函数,但它也可以为null 如果是true或false,则使用“WHERE”子句进行查询。如果为null,则查询没有“WHERE”子句,只有select子句 我如何在Java中做到这一点 您可以使用java.lang.Boolean;这是基本布尔值的包装类。该值可以为null、Boolean.TRUE或Boolean.FALSE,但由于自动取消装箱,您还可以直接与TRUE和FALSE进行比较。使用布尔值 public String foo(Boolean addWhere)

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

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


我如何在Java中做到这一点

您可以使用java.lang.Boolean;这是基本布尔值的包装类。该值可以为null、Boolean.TRUE或Boolean.FALSE,但由于自动取消装箱,您还可以直接与TRUE和FALSE进行比较。

使用
布尔值

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);

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

  • 声明两个函数,一个带有
    boolean
    参数,另一个不带参数
  • 声明一个带有
    可选
    参数的函数
  • 使用
    Boolean
    参数声明一个函数,其中
    null
    是未指定的情况

最好的方法可能是编写两个方法:一个带布尔参数,另一个不带布尔参数。但是您也可以使用java.lang.Boolean,它可以为null。或者使用具有三个值的枚举,而不是布尔值。最好的选择是创建一个
enum
,它接受三个值
TRUE
FALSE
未指定的
。这意味着您可以编写类型安全、空安全的代码。