是否可以创建像C#构造函数或类似的Java构造函数。我试过搜索但找不到任何东西。不知道是不是因为我说错了。
在C#中我可以像这样创建一个构造函数
public class FooA
{
public FooB _fooB { get; private set };
public FooA(FooB fooB = null)
{
_fooB = fooB ?? new FooB();
}
}
可以像这样调用
public static Main()
{
var fooB = new FooB();
var noArg = new FooA();
var withArg = new FooA(fooB: fooB);
}
似乎我在参数中不能有一个等于null的值。我只是好奇和懒惰,因为我宁愿不为我的存储库类创建20个可能参数组合的构造函数。
由于
答案 0 :(得分:1)
Java不支持可选参数。
如果你想要这样的东西我只能建议链式的,重载的方法。
编辑:另一种选择是让一个包含所有输入参数的对象。然后你可以在“holding”对象中设置你想要的那个,并将它传递给构造函数并按照你的意愿使用它。