6

次のブール値を使用した場合、なぜEclipseが次のゲッターとセッターを生成するのか疑問に思っています:

boolean isLifeTimeMember

画像

ゲッターは、isLifeTimeMember() ではなく、isIsLifeTimeMember() である必要があります。

JSP で変数 isLifeTimeMember を呼び出すことに影響したと思います。JSP を調べて isIsLifeTimeMember() getter メソッドにマップするためです。

isIsLifeTimeMember() メソッドはありませんが、Eclipse によって生成されるゲッターは isLifeTimeMember() であるため、エラーが発生します。

ありがとうございました。

4

2 に答える 2

17

Eclipse の名前生成規則では、ブール値のゲッターは で開始する必要がありisます。変数名がすでに で始まっている場合、is追加の接頭辞は必要ないと考えられます。

Eclipse には、is生成されたブール値ゲッターの使用を制御する設定があります。[設定] を開き、に移動しJava > Code Styleます。そこで、「ブール値を返すゲッターに 'is' プレフィックスを使用する」オプションのチェックを外すことができます。Eclipse で生成されたブール値の getter は、他のすべてのものと同様に、「get」で始まります。

ところで、Java ではフィールドとメソッドが同じ名前であっても問題ありません。

ただし、「is」で始まるプロパティ名を使用すると、jsp で問題が発生する可能性があります。このスレッドで説明されているように、質問のようなプロパティ名 (isLifeTimeMember) は避け、代わりにプロパティ自体をプロパティ名 (lifeTimeMember) として使用することをお勧めします。

コード例:

boolean lifeTimeMember;

public boolean isLifeTimeMember() {
   return lifeTimeMember;
}

public void setLifeTimeMember(boolean lifeTimeMember) {
   this.lifeTimeMember = lifeTimeMember;
}

JSP でこの変数を使用する必要がある場合は、単に変数名「lifeTimeMember」を使用します。

于 2012-11-27T05:12:01.593 に答える
2

ブール変数の場合、eclipse はis変数名の先頭に追加してゲッター名を形成します。つまり、変数の場合boolean present;、gemerated ゲッターの名前はisPresent();

is変数名にを含めることはお勧めできません。

変数名が の場合、ispresentjsp では、変数名ispresentで検索し、そのゲッターを検索します。これはブール値であるためisispresemt();、Eclipse のゲッター セッター ジェネレーターisが変数名に既に存在します。

したがって、例外 could not find the field ispresentがスローされることが予想されます

isフィールド内に name があると、問題が発生する可能性があるため、使用しないでください

于 2012-11-27T05:27:45.547 に答える