문제

Java에서는 배열이 객체입니다. 내 질문은 ... 새 배열이 생성 될 때 객체 생성자가 호출 되었습니까? 우리는이 사실을 사용하여 배열의 길이를 확인하는 여분의 바이트 코드를 사용하여 기기 객체 생성자에게 사용하고 싶습니다. 그게 작동할까요?

도움이 되었습니까?

해결책

Java 언어 사양에 관한 한, 둘 다 사용하지만 new 예어, 클래스 인스턴스 생성 표현식 그리고 배열 제작 표현 각각 고유 한 규칙을 가진 다른 형태의 표현입니다. 배열 생성 표현식에 대한 설명은 생성자를 호출하는 것을 언급하지 않습니다.

다른 팁

JVM 사양: "뚜렷한 지침 세트를 사용하여 배열이 생성되고 조작됩니다." 따라서 배열은 객체의 인스턴스이지만 다른 객체와 동일한 방식으로 초기화되지는 않습니다 (해당 링크 앵커에서 스크롤하는지 확인할 수 있음).

생성자를 재정의하기 위해 기본 배열을 도출 할 수 없기 때문에 그렇게 생각하지 않습니다.

바이트 코드 조작을 사용하여 새 배열이 생성되는 곳을 확인할 수 있습니다.

아니요. 나는 이것을 AspectJ 메일 링리스트에서 찾았습니다. http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg02975.html.

이유가 있기 때문에 배열에 대해 묻지 만 가능하다면 컬렉션 클래스로 전환하지 않겠습니까? 그것은 당신에게 유효성을 가로 채고 수행 할 수있는 많은 기회를 줄 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top