그래서 나는 불가능을하려고 노력했다고 생각하는데, 나는 그것에 대해 올바르게하고 싶습니다.arraylist를 확장하는 정적 클래스에()를 추가하는 방법은 무엇입니까?
ArrayList의 add() 메서드는 정적이 아니므로 ArrayList의 모든 하위 클래스를 인스턴스화해야 추가 할 수 있습니다.
개체 집합을 관리하기위한 몇 가지 새로운 기능을 제공하기 위해 ArrayList를 확장하는 클래스를 갖고 싶다면 실제로 하위 클래스의 인스턴스를 만들어야합니까? 이런 경우
,이 같은 정적 초기화를 통해 인스턴스화 할 수 있습니다 : 변수가 정적
static ArrayList<object> manager = new ArrayList<object>();
에도 불구하고,이를 만든 인스턴스로 간주 될 때 클래스로드 ? 그리고 그것이 언제 만들어 지는지 어떻게 알 수 있습니까? 그래서 관리자를 참조하는 코드가 문제가 없는지 확인할 수 있습니까? 나는 시간이 지남에 따라 동일한 ArrayList를 여러 번 사용 (추가, 제거 등)하기를 원하기 때문에 코드의 시작 부분에서 한 번만 인스턴스화해야합니다.
설명해 주셔서 감사합니다.
모든 클래스의 하위 클래스는 무엇이든 수행하기 위해 인스턴스화되어야합니다. 따라서 * 변수가 정적 인 경우에도 클래스를로드 할 때 생성되는 인스턴스로 간주됩니까? * 예. 그렇습니다. –
일반적으로 말하자면 전역 변수로 참조하지 않고 매개 변수 (a-la dependency injection)로 전달하는 것이 바람직하며이를 대신 수행해야합니다. 변경할 수있는 전역 상태는 디버그하고 추론하기가 정말 어렵습니다. –
죄송합니다. 프로그래밍에 익숙하지 않아서 귀하의 의견이 제 머리 위로 넘어갔습니다. 의존성 주입이란 무엇입니까? 그리고 내가 지금하고있는 것 대신에 그것을 어떻게 사용하러 갈 것인가? – zephos2014