幸福なプログラマ

プログラマは幸福になれる。

java

非同期処理にはThreadを直接使わずにExecutorServiceを使用する

一個前の記事 で MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable); thread.start(); みたいな感じでThreadクラスのコンストラクタにRunnable実装したサブクラスを渡して非同期処理をしようと書いたけれど、以下の観点からお…

Threadクラスの継承ではなく、Runnableインタフェースを実装したクラスに処理を委譲する

javaで非同期処理を実現する際、以下のようにThreadクラスを継承したサブクラスを作成し public class MyThread extends Thread { @Override public void run() { // 非同期処理 } } 下記のように呼び出すと思います。 MyThread thread = new MyThread(); th…

javaのenumで要素数を取得する

enum Sample { ONE, TWO; } private int getSampleLength() { return Sample.values().length; } values()でenum型の配列が取得できるので、lengthを呼べば配列の要素数を取得できる。

拡張forをIterable#forEachで置き換える

java5で導入された拡張forのおかげでListから要素を取り出す際の記述を簡潔に行えるようになりましたが、java8でIterableインタフェースに追加されたfoEachメソッドを使用することで更に簡潔に記述できます。 リストから文字列を一つづつ取り出して表示する…