Eclipseのノイズ減らし Type Filters

Type Filtersとは?

Eclipseには、あまり使わないクラスを補完候補から除外する機能が備わっています。

コード補完時に、例えば java.util.List を補完しようとしてるのに毎度毎度 "java.awt.Listとどっちを選ぶ?" と聞かれたりします。Type Filters にて "java.awt.*" と設定すれば、そんなことはもう聞かれません。 もう、絶対に使わないのにも関わらず、わりとよく出てくる紛らわしいものを設定しておくと良いでしょう。

ワークスペース設定になるので、ワークスペースを作るごとに設定する必要があります。

Type Filtersの設定

Preferences の Java - Appearance - Type Filters を選択。

※Macなら command+,(カンマ) で Preferences が開きます

Add を押して、クラス型の補完で "表示させたくない" パッケージやクラスを指定します。

Eclipse TypeFilters Settings Add

お決まりの除外クラスたち

以下は、だいたいのプロジェクトで入れておいて問題はないでしょう。

java.awt.*
awtパッケージを使うことは今の開発ではまずない
com.sun.*
sunパッケージのクラスを使うことはほとんどない
sun.*
sunパッケージが意外と紛らわしい!?
java.lang.StringBuffer
文字列連結を同期化する必要性はほぼない、StringBuilder でOK
java.sql.Date
業務のプログラムでjava.sql.Dateを使うことはまずない
java.util.Calendar
LocalDateTime や (DBFluteの) HandyDate で十分でしょう

JDBCドライバのクラスなども

また、MySQLを使っている場合は、JDBCドライバのLogクラスなどが補完の邪魔にもなるので、以下も入れておくと良いです。

com.mysql.jdbc.log.*
MySQLのJDBCドライバのLogクラスを使うことはまずない

jflute の Type Filters

補完時に「邪魔なクラスがあるなぁ」と思った瞬間に、command+,(カンマ)で Preferences 出して Type Filters に行って登録します。

ノイズクラスが多くて選択に目を取られると思考の邪魔になりますし、ペアプロで若いプログラマーが別のクラスをimportしてしまって、メソッドが呼べなくて混乱してるのを何度も見てきましたので、重要機能だと思っています。

ワークスペース設定でなくプロジェクト設定で共有化できたらいいのになと思っています。

Eclipse TypeFilters Settings of jflute