【问题标题】:Can I create a Java constructor like a C# constructor?我可以像 C# 构造函数一样创建 Java 构造函数吗?
【发布时间】:2016-07-05 08:36:47
【问题描述】:

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

谢谢

【问题讨论】:

  • 不幸的是,这在 java 中是不可能的。我建议使用构建器模式以获得更大的灵活性,并避免在构造函数中传递所有值(及其不同的组合)。
  • 谢谢..会检查一下

标签: java c# .net constructor


【解决方案1】:

Java 不支持可选参数。

如果您想要类似的东西,我只能建议使用链式重载方法。

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

【讨论】:

    猜你喜欢
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2013-04-29
    • 2011-04-21
    • 2016-06-02
    相关资源
    最近更新 更多