質問

次のプライベートメンバーがいる場合:

private int xIndex;

ゲッター/セッターに名前を付けるにはどうすればよいですか:

getXindex()
setXindex(int value)

また

getxIndex()
setxIndex(int value)

編集者

getXIndex()
setXIndex(int value);

?

役に立ちましたか?

解決

正解はです

getxIndex()
setxIndex(int value)

セクションに従ってプロパティとして使用したい場合 8.8:推測された名前の大文字化Javabeans API仕様 (例えば、jspで$ {object.xindex}経由でそれらにアクセスします。

他のヒント

に従い 1997年のJavabeans API仕様トーマス・アインウォラーが説明しているようにすべきです。

private int xIndex;
public int getxIndex() { return xIndex; }
public void setxIndex(int xIndex) { this.xIndex = xIndex; }

これは残念です、 getXsetx 言葉ではなく、intellijによって生成されたコードもintellijによって警告を受けます。したがって、これはJavabeansの仕様に準拠していますが、条約に違反しますメソッドの名前を付けます。これが単語または頭字語を形成するまれな場合、それは偽情報になります、例:setiMessage ほとんどの場合、何の関係もありません seti。使用 コード品質の唯一の有効な測定 (1分あたりのWTF)、私はそれを評価します これは悪いコードです.

それはすべて、Javabeansの仕様のこの文に帰着します。

ただし、すべてのアッパーケース名の使用をサポートするために、名前の最初の2つの文字が両方の上級であるかどうかを確認し、そのままにしておきます。

まさにこれが言及しているすべての上限ケース名の使用は、私には不明です。によると、フィールド名はそうする必要があります大会, 、ラクダのケースになります。 20年以上前のドキュメントで決定された型破りなフィールド名をサポートするために、型破りなメソッド名を生成することは私には思えます。

また、ツールでのJavabeans仕様に対する圧倒的なサポートであると思われているにもかかわらず、それは排他的には使用されていないことに注意する必要があります。例えば。コトリンは認識しません xIndex 上記の例のプロパティとして。逆に、コトリンのプロパティ var xIndex = 0 Javaメソッドになります getXIndexsetXIndex. 。これは、JetBrainsのサポートによるとバグのようですが、変化を起こさずにそれを修正する方法がわかりません。

Javabeansの仕様をサポートするいくつかのツールは、常にそうではないとは限りません。 ジャクソンSwaggerコードジェネレーター それに適合するようにパッチが化されています。 IntellijはJavabeansの仕様に従ってアクセサを生成しますが、 ドキュメントでは、それとは異なります。おそらく、人々は標準について知らず、当然通常の方法の命令を命名することを好むからでしょう。

では、いつJavabeansの仕様に従う必要がありますか? この標準に依存するツールによってアクセサーズによってプロパティ名を推測する必要がある場合、それを使用することをお勧めします。例えば、 ジャクソン プロパティに依存します xIndex アクセスされる getxIndexsetxIndex 注釈を使用しない限り。

この基準をいつ避けるべきですか? 私の推奨に従って:コードを人間が読み、理解する必要がある場合。なぜなら、命名方法には適切なラクダケーシングを使用しないことは、偽装されているからです。

私がそれを自分のやり方で持っているなら、私たちは通常の命名規則を使用します、つまり getXIndexsetXIndex. 。しかし、物事の状態を考えると、私が見る最良の解決策は@vaxquisによって提案されています:

フィールドに「indexx」または他のものを名前を付けてください、あなたの問題は解決されます... setxindexが豆の正しい方法であっても、setxindexという名前の方法を持つことは、見返りに何も与えずにコードのwtf係数を増やすことを増やします。

Javabeansの仕様に関するコメントは、仕様自体によれば、javabeans@java.sun.comに送信する必要があります。

あるべきです:

getXIndex()
setXIndex(final int xIndex)

方法は動詞であり、最初の文字小文字と混合された場合、各内部単語の最初の文字が大文字である必要があります。

package java.beansからintrospector.decapitalizeを使用する必要があります。

Eclipse IDEは、セッターとゲッターを自動的に生成します。

getxIndex()
setxIndex(int value)

これは、Java Beans API仕様によるものです。

おもう getXindex() 最良の方法です。ゲッターは「GET」から始めて、その後にメンバー名が続き、最初の手紙が大文字になります。また、私が聞いた最新の慣習も、次々に複数の大文字を避けるべきだと言っています。例えば getHTMLtooltip 間違っている。そのはず getHtmlTooltip 代わりは。また、すべてのメンバーを作ろうとする必要があります final クラスは不変であるため、セッターが必要ではないはずです;)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top