이 생성자가 있습니다.생성자가 다시 호출되고 있습니까?
public UmlDiagramEntity(ReportElement reportElement, int pageIndex, Controller controller) {
super(reportElement.getX1(), reportElement.getY1(), reportElement.getX2(), reportElement.getY2());
setLayout(null);
this.pageIndex = pageIndex;
this.controller = controller;
reportElements = reportElement.getInternalReportElements();
components = new ArrayList<AbstractEntity>();
changedComponentIndex = -1;
PageListener p = new PageListener();
this.addMouseMotionListener(p);
this.addMouseListener(p);
setPage();
}
그리고 동일한 클래스의 업데이트 방법이 있습니다. 내가 디버거의 흐름을 따르
@Override
public void update(ReportElement reportElement) {
if (changedComponentIndex == -1) {
super.update(reportElement);
} else {
reportElements = reportElement.getInternalReportElements();
if (components.size() == reportElements.size()) {
if (!isCommitted) {
if (reportElement.getType() == ReportElementType.UmlRelation) {
if (checkInvolvementAndSet(changedComponentIndex)) {
anchorEntity(changedComponentIndex);
} else {
resistChanges(changedComponentIndex);
}
return;
}
}
..................goes on
, 나는 업데이트가 호출 될 때, 어딘가에 방법, 프로그램이 생성자에 가서 (슈퍼, pageIndex 등) 다시 모든 것을 실행하는 것을 알 수있다. 왜 그것은 생성자에게 가는가? D 나는 거기에 가라고 말하지 않았다.
나는 더 깊은 분석을하고 원하는 경우 생성자로가는 곳을 볼 수 있습니다. 덧붙여서 changedComponentIndex
은 정적 변수입니다.
생성자에 다시 들어 왔을 때의 스택 추적을 표시 할 수 있습니까? – rsp
"더 깊은 분석을하고 원하는 경우 생성자가 어디로가는 지 확인할 수 있습니다." 나는 그것이 당신 자신의 질문에 대답하는 데 도움이 될 것이라고 생각합니다 ... – Thomas
오, 미안 해요, 지금은 알아 냈어, 아마 비정상적인 전화가 아니지만 내 실수 야. – Halo