나는 모든 장소 (아마도 20 ~ 30 개 인스턴스)를 통해 수행하는 코드를이 :자바 표현 최적화
논리적으로<widget>.setVisible((condition == VIEW) || (condition == EDIT));
내가 자바 컴파일러는 아마 전면 그것을 계산이 최적화됩니다 것을 이해한다 계산 된 부울을 사용하면됩니다.
제 질문은 실제로 이것이 사실인지 확인할 수있는 방법이 있습니까?
설명은
condition
건설 과거를 수정하는 방법과 private
클래스 멤버입니다.
필자는이를 최적화하기 위해 컴파일러에 의존하지 않을 것입니다. 가능한 한 특정 상황에서만 유용합니다 :'condition'이 메소드라면, 지역 변수가 거의 가능하고 어쩌면 할 수 있습니다. 그렇지 않다면, 그것은 setVisible sideeffects, 다른 쓰레드 등에 의해 변경 될 '조건'의 확실성에 달려있다. – dronus
@ Karlson : 보이는 구성 요소가 상태를 바꿀 때 표시되거나 숨겨 질 필요가있을 때 어떤 종류의 초고 무거운 포병이 후드 아래로 이동하는지 전혀 알지 못한다고 생각합니다. 당신이이 체크를 최적화 할 필요가 있다고 생각한다면, 종종 이렇게 부르는 것을 끝낼지도 모릅니다. 앱을 느리게 할 것이기 때문에 큰 문제가됩니다. – TacticalCoder
또한 위젯과 'setVisible'은 비용이 많이 드는 GUI 연산이나 이와 비슷한 것을 가정합니다. 이것은 일반적인 GUI 프레임 워크 코드와 관련하여 그러한 표현식의 실행 된 방도의 방대한 차이로 인해 최적화 된 부울 표현식의 효과를 보이지 않게합니다. – dronus