Index: [Article Count Order] [Thread]

Date:  Fri, 31 Aug 2001 10:02:59 +0900 (JST)
From:  近棟 稔 <Minoru.Chikamune@....jp>
Subject:  [XP-jp:02429] Re: バグ・パターン
To:  extremeprogramming-jp@....jp
Cc:  Minoru.Chikamune@....jp
Message-Id:  <200108310102.KAA12248@....jp>
In-Reply-To:  <20010831092346M.yuichi@....jp>
References:  <20010830161302K.hiranabe@....jp>	<001301c13188$bf8e4590$01000001@piyobook>	<20010831092346M.yuichi@....jp>
X-Mail-Count: 02429

近棟と申します。

Yuichi Tsuchimoto <yuichi@....jp> wrote On Fri, 31 Aug 2001 09:23:46 +0900:
>> 私や同僚が何回かはまったのは
>>   単に member 変数の更新をしているつもりが
>>   local 変数の宣言と初期化になっている
>> というパターンです。
>> 特に、大丈夫なはずの refactoring でおかしくなり、悩むケースが多いです。
>> Java は local 変数どうしの shadow は怒ってくれるのに、
>> これは何も言ってくれないのですよね。
>> 
>>     class A {
>>         private int _size;
>>         resize(int newSize) {
>>              int _size = newSize;
>>           // ^^^ この "int" が余計。
>>         }
>>     }

私はこういうのを回避するためにメンバ変数を触る時には必ず this.〜 で
触るようにしてます。アンダーバーとかnew〜みたいなヘッダは付けずに。

class Main {
  private int size;
  void resize(int size) {
    int this.size = size;  // 見た目にも明らかに間違い...
  }
}

コンパイルすると...
------------------------------
Main.java:4: 文ではありません。
    int this.size = size;
    ^
Main.java:4: ';' がありません。
    int this.size = size;


-- 
―――――――――――――――――――――――――――――――――――
三菱電機 生産システム本部 情報システム技術センター プロジェクト推進部
システム技術グループ (岸本ビル8F 814区)   近棟 稔(ちかむね みのる)
私送便:「本社(岸本ビル) 情技セ プロ推 プロシ技   近棟」
Email: Minoru.Chikamune@....jp
TEL: (外線:グループ宛)03-3218-2121   (内線:ほぼ直通)7-321-2121
―――――――――― Powered by Debian/GNU Linux ――――――――――┘