2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Eclipseのマニアックな保存アクション

Posted at

Eclipseのマニアックな保存アクション

Eclipseの保存アクションで、importの編成とか、ソースの整形辺りは使う人も多いかと思います。
が、Eclipseの保存アクションには他にも追加アクションが用意されています。
中々面白いものもあるので、紹介していきたいと思います。

どこから設定するか

設定>Java>エディタ>保管アクション>追加アクション>構成
から設定できます。

forループを拡張forループに変更する

こんな感じです。

		String[] a = { "hoge", "fuga", "piyo" };
		for (int i = 0; i < a.length; i++) {
			String s = a[i];
			System.out.println(s);
		}
///変換後
		for (String s : a) {
			System.out.println(s);
		}

i をループ内で利用している場合や、i=0から始まらない場合などは変換しない中々頭の良いやつです。
が、絶妙に残念なことにListなどについては変更してくれません。

確かに拡張forループに渡せるものはIterableの継承クラスなので、
厳密には配列のような単純変換をして100%挙動を保証は出来ません。

ただ、今更配列を使ってforループを回す機会なんてほとんどないので、多分設定してもほとんど役に立つことはないでしょう。悲しい。

関数型インターフェースインスタンスに変換

javaのラムダ式は匿名クラスと相互変換できますが、
これをsaveAction時にどちらかに統一する設定です。

使うとしたらラムダ式に変換の方でしょうか。
ただ、「匿名クラスを使用」の方を選択した上で、StreamAPIをガリガリ使っているコードで
SaveActionを起こすとコードが一気に増殖して見た目的に楽しいです。
PredicateとかConsumerとかBiFunctionとか普段意識せずに書いている無名クラスがたくさん見られます。
実用性があるのかと言われると皆無ですが。

不要なコード>冗長な型変数を除去

変数をnewした場合などの型宣言で、自動的にダイヤモンド演算子を使ってくれます。
ここまで実用性に乏しい機能ばかり紹介してきましたが、
これはそれなりに使えるかと思います。
Eclipseのコードアシストは

List<String> l = new ArrLi//ここでコードアシストを使うと
List<String> l = new ArrayList<String>();//こうなる

こんな感じにダイヤモンド演算子を使ってくれませんが、これをONにしておくとSaveActionで消してくれます。
(どうせなら最初からやれと言いたいところですが)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?