为什么Java API要求以非静态方式访问setDefaultUseCaches?

为什么Java API要求以非静态方式访问setDefaultUseCaches?,java,api,conventions,urlconnection,calling-convention,Java,Api,Conventions,Urlconnection,Calling Convention,在使用现在基本上已经失效的JavaWebStart(因为最新的Java更新已经基本上杀死了它)之后,我发现了一种需要调用urlConn.setDefaultUseCaches(false)的情况 然而,我必须首先构造,我发现虽然变量显然是“粘性的”,并且在进一步检查源代码后,我发现变量确实是一个静态布尔值。那么为什么变量是通过非静态方法访问的呢 毕竟,即使静态布尔的getter方法也是非静态的?这是故意的吗? 我的意思是,静态变量不是由静态方法访问的惯例吗?这是一个bug。直接从错误通知单中引用

在使用现在基本上已经失效的JavaWebStart(因为最新的Java更新已经基本上杀死了它)之后,我发现了一种需要调用urlConn.setDefaultUseCaches(false)的情况

然而,我必须首先构造,我发现虽然变量显然是“粘性的”,并且在进一步检查源代码后,我发现变量确实是一个静态布尔值。那么为什么变量是通过非静态方法访问的呢

毕竟,即使静态布尔的getter方法也是非静态的?这是故意的吗?
我的意思是,静态变量不是由静态方法访问的惯例吗?

这是一个bug。直接从错误通知单中引用:

setDefaultUseCaches()应设置为静态,但无法更改 现在不影响二进制兼容性。它是非静态的 只是您需要在调用它之前创建一个实例,这是不正确的 这么严重的问题。换言之,没有充分的理由来解释这一点 添加一个新的静态方法,使其完全正确。所以我们无法解决这个问题


您想解决什么问题?了解Java为何以这种方式设计有助于您解决问题?