枚举还是布尔?

时间:2017-01-09 18:36:01

标签: java enums boolean

我有以下方法:

public void publish(Object source, long id, boolean status) {
}

当我从某些类调用该方法时,它看起来像这样:

 element.publish(this, property.getId(), true)

 element.publish(this, property.getId(), false)

在查看代码之前,无论谁查看代码都不会知道真假的含义。我正在考虑使用枚举而不是布尔值。

您认为正确而干净的方式是什么?

2 个答案:

答案 0 :(得分:1)

嗯......在方法签名的参数上使用布尔值几乎不是一个好习惯。备选方案:

1-创建枚举并改为传递参数。

2-根据您收到的参数,您可以使用此参数创建一个类。

3-重载方法,取决于哪些方法会有所不同。

此外,使用描述性名称会有所帮助。

答案 1 :(得分:0)

使用枚举似乎是代码清晰度的好主意。鉴于参数名称status没有解释真值和假值之间的差异(与isValid不同),枚举如下:

public enum PublishStatus {
    OK,
    LOG,
    ERROR
    // ...
}

可读性会有很长的路要走。