0

问题

我有带有许多访问器的数据传输对象,这些访问器返回不同类型的值,例如Integer, Double,String等。

对象是从解析文本初始化的,其中Integer正在解析的文本中的字段也可能具有“INVALID”值。该类的用户(另一个模块中的开发人员)应该知道他们获得的值是否有效,而不必捕获异常。

我在考虑什么

public class FooDto
{
    private Integer a;
    private Double b;
    private Long c;

    public FooDto(String rawText)
    {
        // Initialize members from rawText...
    }

    public Integer getA()
    {
        return a;
    }

    boolean isAValid()
    {
        boolean isValid = // determine validity
        return isValid; 
    }

    public Double getB()
    {
        return b;
    }

    public boolean isBValid()
    {
        boolean isValid = // determine validity
        return isValid;
    }
}

问题

是否有我应该使用的最佳实践或带有IntegerWithValidityCheck,等的库?DoubleWithValidityCheck需要明确的是,这与仅返回 null 不同。返回值可以为空——如果文本文件中不存在该值、有效值或“INVALID”的特定情况。

4

1 回答 1

1

在我看来,您有两个选择:

  1. 最简单的就是为异常情况抛出异常。我想不存在价值的情况会适合吗?

  2. 创建一个从每个方法返回的新泛型类。它可以有一个isInvalid()方法,该方法指示该值是否被标记为“INVALID”。如果用户在被告知无效的情况下仍然调用getValue(),则抛出异常。

于 2013-06-11T14:58:52.817 回答