我可以像C#构造函数一样创建Java构造函数吗?

时间:2016-07-05 08:36:47

标签: java c# .net constructor

是否可以创建像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个可能参数组合的构造函数。

由于

1 个答案:

答案 0 :(得分:1)

Java不支持可选参数。

如果你想要这样的东西我只能建议链式的,重载的方法。

编辑:另一种选择是让一个包含所有输入参数的对象。然后你可以在“holding”对象中设置你想要的那个,并将它传递给构造函数并按照你的意愿使用它。