2

私たちはここで非常に奇妙なコーディング規則を使用しており、Eclipse で Java フォーマッターを適切にセットアップして、自分のやりたいことを実行することができませんでした。条約は次のように述べています。

  • 中かっこ "{" の前には常に改行が必要です

[更新] "{" の後に改行を入れるかどうかについて、私たちの規則にはルールがありません。例では実際に改行を使用しています (これまでに見たほとんどの規則は、"{" と "}" の後は常に改行でなければならないことを示しているか、暗示しています)。したがって、サンプル 1 と 2 はどちらも「構文的に正しい」です。[/アップデート]

これはコードを吹き飛ばすので、私たちのチームは次のようなコードを書くことにしました (いいえ、これは私の選択ではありません!):

public void methode(final boolean b)
{ if (b)
  { do.something();
  }
  else
  { do.somethingElse();
  }
}

しかし、フォーマッタでは、これしか取得できませんでした:

public void methode(final boolean b)
{
  if (b)
  { 
    do.something();
  }
  else
  { 
    do.somethingElse();
  }
}

またはこれ:

public void methode(final boolean b) { 
  if (b) { 
    do.something();
  }
  else {
    do.somethingElse();
  }
}

「{」の前で改行するようにフォーマッタに指示する方法はありますか? 最初のスタイルがひどいことは承知しており、最後の 2 つのスタイルのいずれかを喜んで使用しますが、これは会社の決定です。

4

2 に答える 2

2

だから、ここにこのトピックに関する情報があります。私はさらにいくつかの研究を行いました。ここで非常に忌まわしいブレース スタイル (サンプル 1) には名前があります: The Horstman ブレース スタイルまたはここでHorstman . K&R とオールマン (サンプル 2) スタイルの利点を組み合わせているため、それを擁護する少数の人々がいます。ブレースが並んでいるので、スペースの「無駄」がありません。

しかし、これだけが真実ではありません。このスタイルはVCSにとって悲惨です。左中括弧と最初のステートメントの間に行を追加する必要がある場合は、最初に行を改行し、そこに新しい行を配置する必要があります。差分またはマージでは、「1 行が追加されました」ではなく、「1 行が 2 行で交換されました」と表示されます。しかし、実際には古いステートメントはあなたによって変更されました。

したがって、このスタイルを使用しないという別の議論があります。

于 2011-06-08T10:40:13.370 に答える
0

コードフォーマッターの関連部分をオフにして、代わりにテンプレートを使用してください。たとえば、入力するとき

private_

ctrl + spaceを押すと、private_methodテンプレートが呼び出されます。次に、プライベートテンプレートを次のように変更できます-

private ${return_type} ${name}(${}) 
{ ${cursor}
}

他のブロックステートメントと同様のことを行う必要があり、テンプレートの使用をより頻繁に開始するにはコーディングスタイルを変更する必要がありますが、うまくいくと思います。

于 2011-05-04T14:10:58.650 に答える