按照Javadoc,HttpServletRequest.getCookies()
“返回包含所有的Cookie对象数组与此请求一起发送客户端。”,并将其返回null
如果没有小甜饼发送。为什么request.getCookies()在没有发送cookie时返回null?
除了返回一个空数组之外,是否还有一个特定的原因,这对我来说似乎更直观一些,并且避免在迭代数组之前检查null以查找特定的cookie?
按照Javadoc,HttpServletRequest.getCookies()
“返回包含所有的Cookie对象数组与此请求一起发送客户端。”,并将其返回null
如果没有小甜饼发送。为什么request.getCookies()在没有发送cookie时返回null?
除了返回一个空数组之外,是否还有一个特定的原因,这对我来说似乎更直观一些,并且避免在迭代数组之前检查null以查找特定的cookie?
这曾经是在这样的情况下,一个常见的Java做法。主要原因可能是由于返回一个空的列表(在垃圾回收器上的工作较少)而返回的效率略高一些。
+1对GC :) – Keerthivasan
较少的工作是有道理的,但它不应该是可行的在类中的静态空数组返回null,并代替其返回空值?我不知道该怎么GC表现在这些情况下,但我的猜测是,静态变量将通过引用访问,且不需要GC'ed ......还是我错了? – Raibaz
你没有错,是我能想到的是,这种情况是一种“惯例”(甚至在JavaScript中,我们可以找到类似的行为)像迈克刚写的一个结果。 – sataniccrow
的File.List()做类似 - 非常讨厌 - 如果不是一个目录或I/O错误,则返回null。 – Will