2012-08-22 3 views
0

가능한 중복 :
Java - How to set String as static intString을 static int로 설정하는 방법은 무엇입니까?

나는 단지 문자열을 받아들이는 방법이있다.

public void setVerticalAlignment(String align) { 
... 
gd.verticalAlignment = align; 
// accepts only int. 
... 
} 

그러나 gd.verticalAlignment은 int 만 허용합니다. 일반적으로 이것은 gd.verticalAlignment = SWT.TOP와 같은 것으로 설정됩니다. 여기서, SWT.TOP는 정적 인 int입니다.

setVerticalAlignment("SWT.TOP")과 같은 방법으로이 메소드를 호출 할 수 있습니까?

+0

예, 가능하지만 간단히 구현되지는 않습니다. 솔직히, 클래스 이름과 상수 멤버를 문자열로 전달하려는 경우 디자인에 문제가있을 수 있습니다. 값이 문자열로 전달되는 이유는 무엇입니까? – DaoWen

+3

어떻게 [기존 질문] (http://stackoverflow.com/questions/12069026/java-how-to-set-string-as-static-int)을 보지 못하게 할 수 있었습니까? 동일한 사용자 (현재 익명)의 재 게시입니까? 동료 ? –

+0

@dystroy - 두 사람이 똑같은 문구와 예제 코드를 사용하여 똑같은 질문을 내놓을 수는 없습니다. – DaoWen

답변

1

align은 문자열 형식의 숫자입니다. 당신은 할 수 있습니다 : 그런

gd.verticalAlignment = Integer.parseInt(align); 
0

사용 Swing constants 또는 뭔가를 당신이 문자열로 캐스팅으로, 자신의 프레임 워크

0

당신이 할 수있는을 출시하는 경우. 하지만 그렇게해서는 안됩니다. 메서드 내에서 코드를 변경하고 gd.verticalAlignment = Integer.valueOf (align)를 호출해야합니다.

+1

Integer.valueOf (String)가'new Integer (Integer.parseInt (s)) '와 같기 때문에 직접'Integer.parseInt'를 호출하는 것이 좋습니다. 원시 int가 필요할 때 새로운 Integer 객체를 얻는 것은 불필요합니다. – halex

+0

사실 ........... – roel

관련 문제