2013-04-05 2 views
1

IntelliJ IDEA는 로컬 필드 만 생성자를 생성하지만 (Alt + Insert) 생성자는 수퍼 클래스에서 상속 된 필드가 아닙니다.inhereted 필드가있는 생성자 생성

내게 버그가있는 것 같습니다. 아니면 어떻게 든 가능할까요?

편집 :

constructor generator

+2

** 부모 클래스의 기본 ** 생성자는 ** 자동으로 **라고합니다. 만약 당신이 특정 서명으로 생성자를 찾으면'super (.....)'가 생성자의 첫 번째 문장으로 호출되어야한다. –

+0

나는 선택한 필드에 대한 생성자를 생성하는 IntelliJ IDEA 기능에 대해 설명합니다. 문제는이 기능이 로컬 필드 만 표시하고 상속 된 필드는 표시하지 않는다는 것입니다. – cosmolev

+0

하위 클래스 생성자의 ** 런타임 ** 또는 ** 본체에서 시작되는 수퍼 클래스 필드가 표시되지 않는다고 말하는 것입니까? –

답변

1

슈퍼 클래스의 필드들이 슈퍼 클래스 생성자에 의해 초기화되는 것을 의미하기 때문에 목록에 표시되지 않습니다; 이 동작은 의도적으로 설계된 동작으로, 버그는 아닙니다.

"생성자 생성"작업을 호출하면 호출 할 수퍼 클래스 생성자를 선택할 수 있습니다. 생성 된 생성자의 매개 변수는 선택한 수퍼 클래스 생성자의 매개 변수와 대화 상자에서 선택한 현재 클래스의 필드 목록의 조합입니다.

+0

굉장! 정말 슈퍼 (...) 호출을 자동으로 생성합니다. 그걸 몰랐어. 고맙습니다! – cosmolev

관련 문제