2014-03-03 19 views
1

在使用现在基本不存在的Java Web Start(因为最新的Java更新已经基本上将其杀死)后,我发现需要我调用urlConn.setDefaultUseCaches(false)的情况。为什么Java API要求setDefaultUseCaches被非静态访问?

但是,我不得不第一次构建我发现虽然变量显然是“粘性”,并进一步检查了源代码,我发现该变量确实是一个静态布尔值。那么为什么通过非静态方法访问变量?

毕竟,即使静态布尔的getter方法是非静态的?这是故意的吗? 我的意思是静态变量可以被静态方法访问吗?

+0

你想要解决什么问题,以及如何知道为什么Java能够帮助你解决问题? –

回答

1

这是一个错误。直接从错误引述票:http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4851466

setDefaultUseCaches()应该已经进行了静态的,但它不能在不影响二进制兼容性,现在改 。它非静态效应 只是你需要在调用它之前创建一个实例,而不是 这样一个严重的问题。换句话说, 没有足够的理由增加一种新的静态方法,它确实是正确的。所以我们不能解决这个问题。