상당수의 정적 변수를 가진 클래스가 있습니다. 모든 클래스가 기본값으로 초기화되지는 않습니다 (예 : 부울 값이 true로 초기화됩니다. , Set은 새로운 Set() 등으로 초기화됩니다. 이 클래스는 다른 클래스에서 작동하는 컨트롤러와 다소 비슷합니다. 클래스에 대한 작업이 끝나면 모든 정적 변수를 원래 값으로 다시 초기화하고 (있는 경우) Java API의 일부분을 사용하여 "reinitializeClassVariables() "메서드를 사용하여 클래스에 선언 된 정적 변수를 변경할 때마다 업데이트해야하는 약 12 개의 변수가 있습니다. 어떤 아이디어? 이 클래스에서 작동을 끝낼 후클래스의 정적 변수를 원래 값으로 다시 초기화하십시오. java
답변
아니오, 빌드 인이 없습니다. 리플렉션이나 바이트 코드 조작으로 무언가를 할 수는 있지만, 가치가있는 것은 아니며 모든 것을 더 복잡하게 만듭니다. 어쩌면 정적 변수를 새 클래스로 리팩터링 한 다음 "완료되면"새 인스턴스로 재설정 할 수 있습니다.
, 내가 원래 값으로 정적 모든 변수를 다시 초기화하고 싶습니다
진심으로 당신이 인스턴스의 더 나은 것 같은데 개의 변수. 그런 다음 new
을 사용하여 클래스의 새 인스턴스 (또는 매개 변수를 포함하는 클래스)를 만들면 모든 변수가 초기 값으로 초기화됩니다. 이런 식으로 뭔가 : 나는 reinitializeClassVariables()
없음 필요가 없습니다 있도록 자바 API의 일부
// All parameters (static if you so like)
static ControlParams controlParams = new ControlParams();
...
// Reset parameters
controlParams = new ControlParams();
뭔가, API에는 그러한 것이 없습니다 (사실, 제가 믿는 언어 사양의 일부 여야합니다). 정적 변수의 사용은 단순히 유스 케이스에서 실제로 나쁜 선택입니다.
동의. 확실히 이러한 인스턴스 변수를 만들어야합니다. 이것은 정적 인 것으로는 이해가되지 않습니다. –
가변적 인 경우 정적 일 가능성이 크지 않습니다. (+1) –
참. 필자는 변수가 원래 정적이기 때문에 'controlParams'가 정적이지 않으면 리팩토링에 더 집중할 것이라고 생각했습니다. :-) – aioobe
- 1. Grails : config.groovy에 정의 된 값으로 정적 변수를 초기화하십시오.
- 2. NSMutableArray를 NSMutableArray로 다시 초기화하십시오.
- 3. 버튼 색상을 원래 값으로 다시 변경하십시오.
- 4. JQuery를 사용하여 '더티'요소를 원래 값으로 다시 설정합니다.
- 5. 클래스의 정적 변수를 재정의하려면 어떻게합니까?
- 6. 함수에서 변수를 변경하고 초기화하십시오.
- 7. gmap3지도를 다시 초기화하십시오.
- 8. iOS에서 루트보기를 다시 초기화하십시오.
- 9. Java generic, 원래 클래스의 메소드 사용
- 10. 양식을 원래 값으로 되 돌리십시오.
- 11. 데이터베이스의 숨겨진 입력 값으로 jquery 슬라이더를 초기화하십시오.
- 12. 스택을 사용하여 멤버 변수를 원래 값으로 재설정하는 일반적인 방법은 무엇입니까?
- 13. C++에서 클래스의 정적 변수를 초기화 하시겠습니까?
- 14. 클래스 변수를 한 번만 초기화하십시오 - objective-C
- 15. 다른 모듈에 정의 된 변수를 부분적으로 초기화하십시오.
- 16. Jquery 원래 값으로 돌아 가기
- 17. Java Array를 한 줄로 초기화하십시오.
- 18. Java 클래스의 정적 변수에 반사 식으로 액세스
- 19. 정적 클래스 필드를 초기 값으로 재설정
- 20. 일반 클래스의 정적 메서드?
- 21. Java - 비 정적 클래스의 확장 된 정적 클래스
- 22. 정적 클래스의 비 정적 클래스 값에 액세스
- 23. django는 MultipleChoiceField를 저장시 원래 값으로 되돌립니다.
- 24. 정적 클래스의 NullReferenceException
- 25. 정적 클래스의 정적 메서드와 정적이 아닌 클래스의 정적 메서드
- 26. 두 줄 변수를 같은 줄에 초기화하십시오.
- 27. 원래 유형의 부스트 변형 변수를 다시 가져 오는 중
- 28. 정적 클래스의 이벤트 발생
- 29. ajax 요청 후 processing.js 스케치를 다시 초기화하십시오.
- 30. JComboBox가 JTable의 원래 값으로 되 돌린다
내 지식에 따르면 불행히도 변수를 다시 초기화하는 Java API는 지원하지 않습니다. 너 혼자해야 해. – Naved