gpt4 book ai didi

java - 签名重叠时如何重载构造函数?

转载 作者:行者123 更新时间:2023-11-29 07:06:02 25 4
gpt4 key购买 nike

假设我有一个构造函数 FooBar(String foo, String bar)。有时我需要创建只有“foo”的对象,有时只有“bar”,有时两者都有。

在对象创建期间避免 null 的明显本能是重载构造函数。但这会产生相同签名的问题。例如:

FooBar(String foo)
FooBar(String bar)
FooBar(String foo, String bar).

假设我不想在这里使用构建器,是否有任何已知的替代方法来避免在不使用 null 的情况下构建对象?换句话说,防止类似 = new FooBar("foo", null) ??

最佳答案

提供 static 工厂方法,其名称可以变化并反射(reflect)实际用途:

public static FooBar createWithFooOnly(String foo) {
FooBar fb = new FooBar();
fb.setFoo(foo);
return fb;
}

public static FooBar createWithBarOnly(String bar) {
FooBar fb = new FooBar();
fb.setBar(bar);
return fb;
}

public static FooBar createWithFooAndBar(String foo, String Bar) {
FooBar fb = new FooBar();
fb.setFoo(foo);
fb.setBar(bar);
return fb;
}

您声明您不需要构建器,但那将是消除 null 的最佳方式。这听起来像是下一个最佳方法。

关于java - 签名重叠时如何重载构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19696275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com