java为什么getHeaderNames在HttpServletRequest中返回枚举,而在HttpServletResponse中返回集合? 3 周,1 日 Questions & Answers 1223 ^{}返回Enumeration<String>,^{}返回Collection<String> 为什么会出现这种差异
# 1 楼答案 枚举与哈希表和向量结合使用。HttpServletRequest自JDK1.2以来就具有getHeaderNames方法,并且此后未被更改 然而,HttpServletResponse直到jdk 6才有getHeaderNames方法,到那时,集合显然比遗留枚举更受欢迎
# 2 楼答案 请求方法已在java版本1.2中实现。 虽然收集的数据来自jdk 6 因此,随着java技术的进步,他们已经使用了两种不同的东西:收集和枚举 若您看到响应头的值,那个么若我们修改了集合,那个么响应头的值将并没有变化
# 3 楼答案 这可能只是因为请求方法是在集合API添加到java之前实现的(我认为是在Java1.2中)。这是对java的一个重大改进,大量java API都建立在它之上。然而,java API的一些以前的部分是在Enumerations、Vectors(在向量实现之前java.util.List)等基础上构建的。。。为了兼容性,它一直保持这种方式
# 4 楼答案 在第一种情况下,您只需获取值。在第二个示例中,您将获得一个对集合的引用,您可以修改该集合 他们在文件中规定: Any changes to the returned Collection must not affect this HttpServletResponse. 因此,这意味着要修改,但修改不应影响响应
# 1 楼答案
枚举与哈希表和向量结合使用。HttpServletRequest自JDK1.2以来就具有getHeaderNames方法,并且此后未被更改
然而,HttpServletResponse直到jdk 6才有getHeaderNames方法,到那时,集合显然比遗留枚举更受欢迎
# 2 楼答案
请求方法已在java版本1.2中实现。 虽然收集的数据来自jdk 6
因此,随着java技术的进步,他们已经使用了两种不同的东西:收集和枚举
若您看到响应头的值,那个么若我们修改了集合,那个么响应头的值将并没有变化
# 3 楼答案
这可能只是因为请求方法是在集合API添加到java之前实现的(我认为是在Java1.2中)。这是对java的一个重大改进,大量java API都建立在它之上。然而,java API的一些以前的部分是在
Enumerations
、Vectors
(在向量实现之前java.util.List
)等基础上构建的。。。为了兼容性,它一直保持这种方式# 4 楼答案
在第一种情况下,您只需获取值。在第二个示例中,您将获得一个对集合的引用,您可以修改该集合
他们在文件中规定:
因此,这意味着要修改,但修改不应影响响应