【问题标题】:Why does Eclipse auto-generate a servlet constructor by default?为什么 Eclipse 默认会自动生成 servlet 构造函数?
【发布时间】:2018-11-07 15:20:09
【问题描述】:

据我了解,在大多数情况下,创建servlet构造函数是没有意义的:web容器会调用父类的无参数构造函数,建议使用init方法执行 servlet 初始化任务。

但是,用于创建新 Servlet 的 Eclipse Java EE 助手默认会生成一个构造函数:

这给出了这个:

/**
 * @see HttpServlet#HttpServlet()
 */
public MyServlet() {
    super();
    // TODO Auto-generated constructor stub
}

建议我应该完成构造函数。这是为什么呢?

【问题讨论】:

  • 这里的复选框的预选总是相同还是上次记住的选择?为了支持不同的编程风格,最好保存最后的选择。或者你怎么看?
  • 预选总是一样的。
  • [1] 虽然我同意 servlet 通常不需要构造函数,但这对于 Stack Overflow 来说不是一个合适的问题。您在问为什么某些 Eclipse 开发人员做出了一个非常次要的特定 GUI 设计决定,只有他们才能回答这个问题。 [2] 如果你真的关心这个,并且想要取消选中默认选项设置,我建议你raise a feature request on Bugzilla。 [3] 你的标题不正确。 Eclipse 不会“自动生成 servlet 构造函数”;用户决定是否生成构造函数。
  • 好吧,这个 GUI 设计决定足以粉碎我对 servlet 生命周期理解的信心。如果有任何充分的理由这样做,那么这个问题就很合适。我还试图看看它是否对软件工程更好,但我认为不会。我承认标题略有错误,但这是默认行为。怜悯!

标签: eclipse servlets jakarta-ee


【解决方案1】:

我同意 Create Servlet 对话框中复选框的预选 可以改进。请report this to Eclipse WTP Java EE Tools作为功能请求。

注释// TODO Auto-generated constructor stub来自Constructor body代码模板,可以更改,不仅适用于Servlet,也适用于其他Java类:

窗口 > 首选项:Java > 代码样式 > 代码模板:代码 > 构造函数主体

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 2013-01-23
    • 2022-01-09
    • 2017-01-10
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    相关资源
    最近更新 更多