Javaありがたや

Javaを簡潔・直感的に伝わるような記事書きたいです。

java.util

Optionalで書くとこうなる。

KAZ19514005_TP_V

Java8のラムダ式って使い慣れると、前の方法で書きたくないですよね。新旧を比較するような形で書いてみました。

Optionalクラスのおかげで「nullチェックにまつわる、あるあるプログラミング」を簡素化してくれます。

続きを読む

ObjectsのrequireNonNullメソッドで確実にNullPointerExceptionを投げる。

svg

NULLを予期していなかったメソッドの引数にNULLが入って、誤作動してしまったというのがあると思います。

Java 7から登場したObjectsクラスのrequireNonNullメソッドを入れておくだけで、こういうことを防ぐことができるので、積極的に活用したほうがいいでしょう。

続きを読む

ラムダ式を自作して仕組みを理解する。

duke

ラムダ式使ってるのはStream APIぐらい。。という人も多いのではないでしょうか。

ラムダ式を自分で作ってみると、理解が深まって応用化しやすいのではないかと思います。

続きを読む

ファイル読み込みにBufferedReaderではなくScannerを使うとシンプル

download

Javaのストリームなファイルの読み込みと言えば、BufferedReaderが定番でしたが、なんとJava 5の時点でScannerというものがあり、こっちの方が簡単にプログラムを書けるのでした。

続きを読む

HashMapとArrayListだけしか知らないと損するよ?Collections Frameworkを活用して数行の処理に。

test

「どんな集合体(Collection)でもHashMap、ArrayListだけで乗り切ってやるぜ!」という熱い志を感じるソースを見かけたこともあると思います。

Collections Frameworkを活用していると数行で済んだりするケースが多々あるのでJavaエンジニアなら、絶対覚えてたほうがいいと思います。

続きを読む

日数や時間の変換はTimeUnitで簡単にやろう。

download

日数や時間をミリ秒へ変換する処理を見かけることもあると思います。 コメントがなかったら、何の計算をしてるのかわからない。。

public class Main {

  public static void main(String[] args){
	  //5日間をミリ秒に変換
	  System.out.println(5 * 24 * 60 * 60 * 1000);
	  
	  //6時間を秒に変換
	  System.out.println(6 * 60 * 60);
	  
	  //1分をマイクロ秒に変換
	  System.out.println(1 * 60 * 1000000);
  }
}
実行結果
432000000
21600
60000000

java.util.concurrent.TimeUnitを使うとコメントなしでも、すぐ理解できるプログラムになっちゃいます。

続きを読む

Thread.start()実行をやめよう。「ExecutorService」でスレッド管理が簡単に。

test

JDK1.5で導入された『ExecutorService』。

Web開発だと使う機会があまりありませんが、Javaバッチ作成時には是非覚えておきたいクラス。

スレッド管理・実行を簡単に実装でき、DBやファイルのマルチアクセスに本領発揮。
続きを読む