4

Eclipse Juno には、変換用のクイックアシストSwitch to If-elseがあります。反対のアクションである変換のためのクイックフィックスまたは同様のショートカットを追加する方法はありIf-else to Switchますか?

たとえば、次のように変換します。

if (kind == 1) {
  return -1;
} else if (kind == 2) {
  return -2;
} else {
  return 0;
}

に:

switch (kind) {
  case 1: return -1;
  case 2: return -2;
  default: return 0;
}
4

1 に答える 1

0

興味深い質問です。に変換するためのクイック フィックスを追加できる場合、アシストは、複数の変数を含む式を含むステートメントをステートメント にどのように変換if-elseしますか?switchif-elsebooleanswitch

if-elseたとえば、このステートメントをswitch次のように変換したいとします。

if (x == 1 && y == 1) {
   //do something
} else if (x == 1 && y == 3) {
   //do something else
} else if (x == 2 && y == 1) {
   //and so on.
}

これにより、次のようになります。

switch (x) {
   case 1 : {
      switch (y) {
         case 1: // do something
         case 3: // and so on  
      }
      break;
   }
   case 2 : {
      switch (y) {
         case 1: //do something else
      }
      break;
   }
}

if-else個人的には、より複雑なbooleanステートメントをに変換したくありませんswitch。生成されたコードは非常に読みにくく、(おそらく) Good Practices の規則を満たさない可能性があるからです。あなたが投稿したような単純なケースでは、それほど難しくなく、変換するのにそれほど時間と労力はかかりません.

于 2013-05-10T09:59:37.627 に答える