getHeaderField为何总是return null

各位大佬,我无意中查看源码的时候产生如下疑问:
java.net.URLConnection类中有一个getHeaderFieldDate方法,如下:

@SuppressWarnings("deprecation")
public long getHeaderFieldDate(String name, long Default) {
    String value = getHeaderField(name);
    try {
        return Date.parse(value);
    } catch (Exception e) { }
    return Default;
}

该方法中调用了一个getHeaderField方法,如下:

public String getHeaderField(String name) {
    return null;
}

getHeaderField方法总是返回null,这是为什么呢?谢谢!

阅读 4k
1 个回答
    /**
     * Returns the value of the named header field.
     * <p>
     * If called on a connection that sets the same header multiple times
     * with possibly different values, only the last value is returned.
     *
     *
     * @param   name   the name of a header field.
     * @return  the value of the named header field, or {@code null}
     *          if there is no such field in the header.
     */
    public String getHeaderField(String name) {
        return null;
    }

事实上这个方法在常见实现类里都有被覆写:

clipboard.png

比如常见的 HttpURLConnection 中:

public String getHeaderField(String var1) {
    try {
        this.getInputStream();
    } catch (IOException var3) {
        ;
    }

    return this.cachedHeaders != null 
        ? this.filterHeaderField(var1, this.cachedHeaders.findValue(var1)) 
        : this.filterHeaderField(var1, this.responses.findValue(var1));
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题