1
ServletContext context=getServletContext();

这里 ServletContext 是接口。

Context 是 ServletContext 的类型

getServletContextServletContext接口中的一个方法,返回有关 Servlet 的信息。

我的问题是我们正在为接口创建一个上下文对象。我们如何为接口创建一个对象?

如果不是,我们正在为 ServletContect 创建对象我们到底在做什么 ServletContext 和 getServletContext() 之间的映射是什么?

请先一步一步解释谢谢?

4

3 回答 3

0

getServletContext不是ServletContext接口的方法。它是GenericServlet正在实现的ServletConfig接口的方法,因此它在扩展GenericServlet的HttpServlet中可用。ServletContext可能由 Web 服务器实现,它们可能在GenericServlet中返回该类的对象。

希望这个解释有所帮助。

于 2013-03-10T14:40:18.570 回答
0

您的问题是How can we create an object for interface?
Answer is :我们无法创建接口对象(任何接口),但我们可以分配接口实现类对象的引用(这是有效的,并在 OOP 中提供多态性和继承)
我建议阅读Head First Core Java以更好地理解所有这些东西。
我们不能new在接口之后调用关键字并以分号 Ex 结尾。

ServletContext context = new ServletContext(); //invalid. cannot end with semicolon

但是经过几次阅读后,您会发现类似的构造/语法

ServletContext context = new ServletContext() {    // see semicolon absent after ()

// and all methods here with some definition

};  

这是实现 ServletContext 接口的匿名类。

如果你看到像这样的构造

Thread t = new Thread() {  //semicolon is absent after () bracket

};

表示它是扩展类 Thread 的匿名类。

于 2013-03-09T11:54:02.763 回答
0

我认为您的问题是如何从界面创建对象。

答案是不能。

但是我们可以使用接口名称,然后我们可以将接口的引用分配给类对象。

(这意味着我们可以创建匿名类(在对象内部))。

有关更多详细信息,请阅读 javatpoint 接口课程。

于 2018-08-21T07:41:22.003 回答