2014-03-03 11 views
1

Java Web Start를 사용하면 (최근의 Java 업데이트로 인해 Java Web Start가 죽었으므로) urlConn.setDefaultUseCaches (false)를 호출해야하는 상황을 발견했습니다.Java API가 setDefaultUseCaches에 정적이 아닌 액세스를 요구하는 이유는 무엇입니까?

그러나 변수를 명확하게 "끈적 끈적"하고 소스 코드를 자세히 검사 할 때 변수가 실제로 정적 부울임을 발견했습니다. 그렇다면 변수가 비 정적 메서드를 통해 액세스되는 이유는 무엇입니까?

결국 정적 부울에 대한 getter 메소드조차도 정적이 아닙니다. 이것은 의도적입니까? 정적 변수가 정적 메서드에 의해 액세스된다는 규칙이 아닙니까?

+0

어떤 문제를 해결하려고합니까? 그리고 Java가 어떻게 그렇게 해결되도록 도와 주는지 아는 것이 어떻게됩니까? –

답변

1

버그였습니다. 버그 티켓에서 직접 견적 : http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4851466

setDefaultUseCaches()는 정적되었습니다해야하지만 바이너리 호환성에 영향을주지 않고 지금 을 변경할 수 없습니다. 정적이 아닌 것의 효과는 입니다. 호출하기 전에 인스턴스를 만들어야하는데, 이것은 같은 심각한 문제는 아닙니다. 다시 말해, 에 정확히 맞는 방법으로 새 ​​정적 메서드를 추가하는 데 충분한 정당성이 없습니다. 그래서 우리는 이것을 고칠 수 없을 것입니다.