如何在Java中绕过不存在的默认参数 / 如何使用带有多个字段的方法重载?

9 浏览
0 Comments

如何在Java中绕过不存在的默认参数 / 如何使用带有多个字段的方法重载?

我知道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中不起作用。如果我为每种可能的情况编写一个构造函数,我最终会写成数百个,所以这显然不是正确的方法。

admin 更改状态以发布 2023年5月20日
0
0 Comments

通过构建模式,第一个建议者是khelwood,这是我解决问题的方法。

0