使用现在基本上已经不存在的Java Web Start(因为最新的Java更新刚刚杀死它),我发现了一个需要我调用urlConn.setDefaultUseCaches(false)的情况。
然而,我必须首先构造我发现虽然变量显然是“粘性的”,并且在进一步检查源代码时,我发现该变量确实是一个静态布尔值。那么为什么变量通过非静态方法访问?
毕竟,即使是静态布尔值的getter方法也是非静态的?这是故意的吗? 我的意思是静态方法是否可以访问静态变量?
答案 0 :(得分:1)
这是一个错误。直接从错误故障单引用:http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4851466
setDefaultUseCaches()应该是静态的,但不能更改 现在不影响二进制兼容性。它的效果是非静态的 只是你需要在调用它之前创建一个实例,而不是 这么严重的问题。换句话说,没有足够的理由 添加一个新的静态方法,以正确的方式完成它。所以我们无法解决这个问题。