2014-09-25 8 views
1

는 내가 쓰기 그러나 때 일의 CodeModelCodeModel 표현식을 괄호로 묶으려면 어떻게합니까?

while ((sbt = reader.readLine()) != null) 
{ 

} 

를 사용하여 매우 공통 코드를 생성 할 :

JWhileLoop whileJsonBuilder = block._while(JExpr 
          .ref("partJsonString").assign(JExpr.ref("reader")) 
          .ne(JExpr._null())); 

나는 괄호가 누락되었습니다

while (partJsonString = reader!= null) { 
    stringBuilder.append(partJsonString); 
} 

주의를 얻을. 괄호를 코드에 표시하려면 어떻게해야합니까?

+0

':

JWhileLoop whileJsonBuilder = block._while( new ParensExpession( JExpr.ref("partJsonString").assign(JExpr.ref("reader")) ).ne(JExpr._null())); 

가 제공합니다 :

public class ParensExpession extends JExpressionImpl{ private JExpression expression; public ParensExpession(JExpression expression) { this.expression = expression; } @Override public void generate(JFormatter formatter) { formatter.p('(').g(expression).p(')'); } } 

코드에 법인 : 당신은, 그러나, paraenthesis을 렌더링하는 데 특별한 JExpression을 추가하여이 문제를 처리하기 위해 JCodeModel을 확장 할 수 있습니다 ;;) {String sbt = reader.readLine(); if (sbt == null) break; ...}'이 CodeModel에서 가능합니다. 패턴이 더 좋은 스타일 인 반면 반대로는 선호하는 이유가 없습니다. –

+0

예, 고마워요. 그러나 나는 코드 모델에서 달성 할 수있는 방법이있을 것이라고 생각하고 있었고, 결국에는 Sun에 의해 작성되었습니다. – user3184974

+0

예를 들어 어설 션 문의 하위 집합 만있는 것처럼 보입니다. 나는 쉼표 표현 뒤에 너무 빨리 찾았다. –

답변

1

불행히도 괄호를 추가하는 기존 방법을 찾을 수 없습니다. (대한

while ((partJsonString = reader)!= null);