2017-02-24 78 views
0

我正在使用JCodemodel動態生成Java類。下面是創建一個switch語句的代碼,其默認情況是拋出一個Exception。JCodemodel中的異常消息

JSwitch valueswitch; 

AbstractJClass exception = ref(IllegalArgumentException.class); 

valueswitch._default() 
      .body() 
      ._throw(JExpr._new(exception)); 

生成的類看起來像下面

public static Example switchCode(String code) { 
     switch (code) { 
      case "1": 
      { 
       return A; 
      } 
      default: 
      { 
       throw new IllegalArgumentException(); 
      } 
     } 
    } 

現在我想將消息添加拋出像

throw new IllegalArgumentException("Invalid code "+ code); 

我怎樣才能JCodemodel實現這一例外。任何幫助,將不勝感激。

回答

1

您只需將語句添加到異常的構造函數:

valueswitch._default() 
      .body() 
      ._throw(JExpr._new(exception) 
        .arg(
          JOp.plus(JExpr.lit("Invalid code "), codeParam) 
        ));