- PR -

Eclipseでgetter, setterメソッドの生成について

投稿者投稿内容
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-11-06 16:55
引用:

ちなみに setter で this を使うやりかただと、
どうしても this を使わないと書けないコード(内部クラスからその外側のクラスの
インスタンスが持つフィールドを参照する場合など)との区別がつきにくくなる
(というか this が随所に現れてしまうので希少性(?)が薄れる)ので、そういう点から
言えば this を使うやりかたの優位性がなくなってきていると感じます。


unibonさん、こんにちは。
thisの希少性というのは、thisをキーにして検索で引っ掛ける様なシチュエーションを
想定されているのでしょうか。
私としては、スコープを明示するということでthisは使った方が良い様に思うのですが。
まあ、実際のプロジェクトでどう運用するのかというのはまた別問題だとは思いますが、
私の知っている範囲では今のところ明示的にthisを付けていて問題が発生したことは
ありませんでした。何か問題が発生することってあるのでしょうか??
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2003-11-06 17:07
unibon です。こんにちわ。

引用:

おばけさんの書き込み (2003-11-06 16:55) より:
thisの希少性というのは、thisをキーにして検索で引っ掛ける様なシチュエーションを
想定されているのでしょうか。


ほぼそのような感じです。テキストエディタで this という文字列を検索したり、
ソースコードを目視して this を探したりです。

引用:

おばけさんの書き込み (2003-11-06 16:55) より:
まあ、実際のプロジェクトでどう運用するのかというのはまた別問題だとは思いますが、
私の知っている範囲では今のところ明示的にthisを付けていて問題が発生したことは
ありませんでした。何か問題が発生することってあるのでしょうか??


問題は一切発生しないと思います。あくまでも見易さだけの観点です。
ちなみに javap コマンドでバイトコードを見てみましたが、
バイトコードレベルでも setter での this の有無による違いはなかったです。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-11-06 17:21
引用:

問題は一切発生しないと思います。あくまでも見易さだけの観点です。


なるほど、可読性ということですね。

引用:

ちなみに javap コマンドでバイトコードを見てみましたが、
バイトコードレベルでも setter での this の有無による違いはなかったです。


そこまでやられたんですか。。。
まあでも、thisを指定することによるパフォーマンスロスが無さそうだ、
というのはとても有難いです。安心しました。
javan
会議室デビュー日: 2003/03/03
投稿数: 18
投稿日時: 2003-11-06 18:26
thisを付けるか付けないかで言えば、私は付ける派です。
なので、私の個人的理想でいうと
コード:
public void setAddress(String string) {
    this.address = string;
}


がよいです。

引用:
引数が1個だけの場合もJavadocを生成することを考えると仮引数に意味のある
名前を与える方が良いのではないかと思います。


Javadocを見て引数名だけで判断するとは思えないので特に気にしていません。
もちろん引数名が引数の内容と一致すれば、より分かりやすいとは私も思います。

どちらがいいかは一概に言えないので、好みや、会社・組織の方針で統一
がとれていればよいのでしょう。
#私はあくまでも address = string; を周りの人に推奨します。

引用:
過去に経験しましたが、このバグを発見するのは結構時間がかかりました。


ちなみにこれは、Eclipseを使用する以前のエディター時代の出来事で
junitも使用していない頃でした。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-11-06 23:42
引用:

javanさんの書き込み (2003-11-06 18:26) より:
Javadocを見て引数名だけで判断するとは思えないので特に気にしていません。
もちろん引数名が引数の内容と一致すれば、より分かりやすいとは私も思います。


まあ、確かに仰るとおり仮引数の名前ではなくそれに対する説明を読んで理解すれば
良いことではあります。ただ、Eclipseのコード補完機能では、複数のシグネチャを
持つ同名のメソッドを補完しようとすると、仮引数の型と名前だけが表示されます。
この時に仮引数の名前が意味を持つものだと、より分かりやすいかなと思いました。

# Ctrl + / で出てくるやつです。

まあ、言ってしまえば好みの問題なんですが、、、(^^;

スキルアップ/キャリアアップ(JOB@IT)