2014-06-13 1 views
1

매개 변수가 4 개인 사용자 정의 위젯이 있습니다. 이 매개 변수 중 하나는 선택 사항입니다. UiBinder에서 위젯을 사용하고 선택적 필드를 생략하면 오류가 발생합니다. 내가선택적 매개 변수가있는 GWT UiConstructor

... 
<b:MyWidget arg1="sdfsd" arg2="fsdgds"> 
... 

를 작성하는 경우 UiBinder 파일에 내가

... 
<b:MyWidget arg1="sdfsd" arg2="fsdgds" arg3="ertlkj"> 
... 

를 작성하는 경우 예를

MyWidget(String arg1, String arg2, String arg3) { 
    ... 
} 

를 들어

그런 다음 다음과 같은 오류가 발생합니다

[ERROR] <MyWidget arg1="sdfsd" arg2="fsdgds"> missing required attribute(s): arg3:  <b:MyWidget arg1="sdfsd" arg2="fsdgds"> 

선택적 인수를 정의 할 수있는 방법이 있습니까?

답변

3

더 좋든 나 나쁘 든간에, 이것은 UiBinder가 설계된 방식입니다. @UiConstructor 하나만 지정할 수 있으며 UiBinder는 항상 해당 생성자를 사용합니다.

가능한 경우 생성자 인수를 만드는 대신 설정자로 지정하십시오. setArg3() 메서드는 생성자간에 전환하려고 시도하지 않고 arg3 특성이있는 경우 선택적으로 호출됩니다.

+0

감사합니다. 테스트없이이 답변을 게시했습니다. – Braj

2

위젯에 선택적 매개 변수가 표시되지 않습니다.이 매개 변수는 모두 필수 항목입니다. 당신은 할 수 있습니다 :

MyWidget(String arg1, String arg2) { 
    ... 
} 

public void setArg3(String arg3) { 
    this.arg3 = arg3; 
} 

또는 :

MyWidget() { 
} 
public void setArg1(String arg1) { 
    this.arg1 = arg1; 
} 
public void setArg2(String arg2) { 
    this.arg2 = arg2; 
} 
public void setArg3(String arg3) { 
    this.arg3 = arg3; 
} 

를 그런 다음 UI를 모두 : 바인더 선언 작동합니다.

+0

가능하면'var-args'로 테스트 해 보겠습니다. – Braj