0
我知道Java中没有方法的默认参数,这可以通过使用方法重载来解决,如this问题。如何绕过Java中不存在的默认参数/如何使用可能字段的方法重载?
不过,我有一类具有大约二十场,我应该能够创建一个类的字段的任意组合:
import java.util.Date;
public class RequestBodyGenerator {
private Integer length;
private String author;
private String title;
private Long descriptionId;
private Long productId;
private Integer yearMin;
private Integer yearMax;
private Long publisherId;
private String publisher;
private String ean13;
private String imageFilter;
private String image;
private Date createdFrom;
private Date createdFromTime;
private Date createdTo;
private Date createdToTime;
private Date shopSellFrom;
private Date shopSellFromTime;
private Date shopSellTo;
private Date shopSellToTime;
private Integer minPrice;
private Integer maxPrice;
private String moreInfo;
private String storagePlace;
private String creator;
private String orderBy;
private Boolean __checkbox_needImage;
}
该类应创建一个HTTP请求的身体,故取其构造函数获取的字段将在请求体中具有值,其他字符串应该是空字符串。可能只有一个领域,可以说我在一个“标题”领域给予,其他所有领域都是空的,但可能发生的情况是我会给10+个领域提供价值。
我的问题可以通过使用一个空字符串作为默认参数来解决,但是这在Java中不起作用。如果我为每个可能的情况写了一个构造函数,我最终会写上数百个,所以这显然不是要走的路。
使用[构建器模式](http://www.javaworld.com/article/2074938/core-java/too-many-parameters-in-java-methods-part-3-builder-pattern.html) – khelwood
这是一个建设者的目的。 –
除了构建器,您可能还想使用[空对象模式](https://en.m.wikipedia.org/wiki/Null_Object_pattern)来表示缺少的数值。 –