省略>在spring框架中当有默认参数值时

发布于 2024-11-10 17:03:42 字数 514 浏览 2 评论 0原文

我有以下简单的构造函数:

public SimpleClass(Type1 arg1, int interval = 1000)
{ ... }

我使用 spring 框架初始化它,如下所示,而不使用 autowire:

<object name="SimpleClass" type="..., ...">     
    <constructor-arg name="arg1" ref="..." />
    <constructor-arg name="interval" value="1000" />    
</object>

我的问题是:因为我在实际构造函数中为第二个参数定义了默认值,我可以将其保留在 spring 配置文件之外吗?或者如果您不使用 autowire,spring 是否需要对所有参数进行显式声明?因为我使用的是 spring,所以在这里保留默认参数值有什么意义吗?

I have the following simple constructor:

public SimpleClass(Type1 arg1, int interval = 1000)
{ ... }

I'm initialising this using the spring framework as follows, without using autowire:

<object name="SimpleClass" type="..., ...">     
    <constructor-arg name="arg1" ref="..." />
    <constructor-arg name="interval" value="1000" />    
</object>

My question is: Since I'm defining a default value for the second parameter in the actual constructor, can I leave it out of the spring config file, or does spring need an explicit declaration for all parameters if you don't use autowire? Is there any point in leaving in a default parameter value here, since I'm using spring?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

掌心的温暖 2024-11-17 17:03:42

当使用 xml 配置时,这不起作用(使用 Spring.NET 1.3.1 进行测试)。

使用 CodeConfig 时它可能确实有效,但我还没有尝试过它出来了。

最快的解决方法是简单地在类中引入第二个构造函数:

Class SimpleClass
{
  public SimpleClass(Type1 arg1) : this(arg1, 1000)
  {}

  public SimpleClass(Type1 arg1, int interval = 1000)
  { 
    // ...
  }
}

这总是有效的。

That does not work when using xml configuration (tested it with Spring.NET 1.3.1).

It probably does work when using CodeConfig, but I haven't tried it out.

Quickest work-around would be to simply introduce a second constructor in your class:

Class SimpleClass
{
  public SimpleClass(Type1 arg1) : this(arg1, 1000)
  {}

  public SimpleClass(Type1 arg1, int interval = 1000)
  { 
    // ...
  }
}

That will always work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文