当前位置: 首页 > 面试题库 >

为什么我们不能使用构造函数本身来初始化servlet?

董霖
2023-03-14
问题内容

为什么我们必须在Servlets中重写init()方法,同时可以在构造函数中进行初始化,并让Web容器调用构造函数,同时在调用构造函数时将ServletConfig引用传递给Servlet?

当然,容器必须为此使用反射,但是容器仍然必须使用反射来调用简单的无参数构造函数


问题答案:

由于构造函数不能是接口的一部分,因此与常规方法不同,不能在Servlet
API中“正式”指定构造函数。此外,由于Java没有析构函数,destroy因此仍然需要一个方法,因此定义相应的init方法可以使API更加一致且易于使用。

使用反射来检测/验证构造函数参数只会使事情不必要地复杂化,而且我看不到任何附加值。



 类似资料:
  • 问题内容: 我想知道为什么我们不调用servlet构造函数而不是init方法来初始化配置参数。 谢谢 问题答案: 该线程应阐明差异。 引用以下更具启发性的帖子之一: init()方法通常用于执行servlet初始化-创建或加载servlet在处理其请求时使用的对象。为什么不使用构造函数呢?好吧,在JDK 1.0(最初为其编写servlet)中,动态加载的Java类(例如servlet)的构造函数不

  • 我的代码中只有参数化构造函数,需要通过它进行注入。 我想刺探参数化构造函数以注入模拟对象作为junit的依赖项。 但我们有什么东西可以在构造函数中注入模拟对象并对其进行监视吗?。

  • 问题内容: 我已经搜索了很多,并在此处给出的堆栈溢出中得到了这个答案 那说明我们可以同时使用构造函数和简单初始化 但我想要答案 但是,如果编译器自动完成构造函数初始化,为什么还要使用构造函数初始化呢! 问题答案: 构造函数的简单定义: 初始化类对象的特殊方法。始终且仅与关键字一起使用以创建类的实例。 与类的名称相同。 可以接受一个或多个参数。 没有返回值,甚至没有void。 默认构造函数不带任何参

  • 我试图从WebClient中替换RestTemplate,因为根据Java文档,RestTemple将被弃用。Spring团队建议尽可能使用WebClient。 之前的RestTempalte代码如下 我想从WebClient替换RestTemplate。所以我实现了类WebClientConnection,如下所示 我使用这个依赖项 Webclient create 上有堆栈溢出错误 如何正确地

  • 问题内容: 我有两个班,第一个是我的主班,第二个是我的编辑框架班。 我的第二个类(UpdateGUI)在其构造函数中提供oldName,并对其进行编辑,当我单击时,它将newName发送给我的第一个类。 我的第二堂课: 我的问题是,为什么newName为null? 更新: UpdateGUIDialog类: 输出: 我需要打印而不是null。 问题答案: Java对象有点像真实对象。并顾名思义:它