EclipseにおいてJavaのstatic importを素早く得る方法
問題
Eclipseを使っていると通常のクラス参照では、すぐにそのクラスを見つけ出してくれて、importを作成してくれる。例えば何かしらのクラス名を記述して、そこで「Ctrl + Shift + M」を押せば候補を表示してくれ、OKすると自動的にimportを作ってくれる。
しかし、static importは自動的に作ってくれない。例えば、JUnitテストで以下を記述したいとする。
assertTrue(result);
この場合、自分で「import static org.junit.Assert.*」と書かなければならないのだ。。。。と思ったのだが違っていた。自動でやってくれるのである。
設定
EclipseのPreferenceの設定に以下のように記述する。実際には多くの記述がデフォルトで含まれていると思うが、もちろんここに自分の使いたいものを追加してよい。
※伏せ字にしている箇所は独自のライブラリの定義である。
ここに見られるように、「org.junit.Assert.*」を登録しておく。
呼び出し方法
次のように書いたとする。この時点では、importは「import org.junit.*」のみである。static importは無い。
import org.junit.*;
public class Foo {
@Test
public void test() {
}
}
次に「assertTrue」とだけ書いて、「Ctrl + Space」を押す。すると以下の状態になる。
選択肢のいずれかを選ぶと、以下の状態になり、
さらに、static importが勝手に挿入されていることがわかるはずだ。
import static org.junit.Assert.*;
import org.junit.*;
うまくいかないことがある
しかし、これがうまく行かない場合があるのだ。Ctrl + Spaceを押しても”no default proposals”などと表示されてしまう。
現在のところ原因が不明。
ライブラリとして取り込んでいる場合は問題無いらしい(org.junit.Assert.*など)のだが、開発中のプログラムの中のクラスだと選択肢を出すこともあり、出さないこともある。ここがわからない。一体全体どういう条件で出たり出なかったりするのか。
ディスカッション
コメント一覧
まだ、コメントがありません