こんにちは。SI部の満石です。 今回はJava特有の冗長なコードを簡潔にしてくれる「Lombok」を紹介します。 はじめに Javaエンジニアの方なら、一度はEclipseの機能を使用してsetter/getterの自動生成や、hashCode()、equals()、toString()の生成を行ったことがあると思います。 Eclipseのこの機能は便利ですが、自動で生成できるようなアプリケーションの本質とは関係のない冗長なコードが必要になってしまっていると言えます。 また、フィールドの追加・削除・変更を行う場合は自動生成し直す必要があり面倒です。 フィールドを追加の場合はhashCode()、equals()、toString()は自動生成しなおさなくてもエラーとならないため、自動生成を忘れるとバグの原因にもなります。 このようなことはこれまでは仕方がないことだと受け入れてきたのではない
package spockexample; import org.junit.Before; import org.junit.experimental.runners.Enclosed; import org.junit.experimental.theories.DataPoints; import org.junit.experimental.theories.Theories; import org.junit.experimental.theories.Theory; import org.junit.runner.RunWith; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; @RunWith(Enclosed.class) public class Perso
The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions. JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields. JD-Eclipse is a plug-in for the Eclipse platform. It allows you to display a
Java8で機能拡張されたjava.util.Comparator*1インタフェースについてメモ。コンパレータオブジェクトを生成・合成するstatic/defaultメソッドが追加された。 メソッド 機能 naturalOrder() (自然順序付け)コンパレータを生成 reverseOrder() (自然順序付け)逆順コンパレータを生成 comparing(e) ソートキー(U型)抽出関数eを指定したコンパレータを生成 comparing(e,u) ソートキー(U型)抽出関数eと(U型)コンパレータuを指定したコンパレータを生成 comparingInt(e) ソートキー(int型)抽出関数eを指定したコンパレータを生成 comparingLong(e) ソートキー(long型)抽出関数eを指定したコンパレータを生成 comparingDouble(e) ソートキー(double型)抽出
はじめに Java8の新機能、Stream APIを使い始めてコーディングが格段に楽になりました。 備忘録的にサンプルコードを書き出してみました。少しずつ追加していく予定です。 Javaは使ったことあるけどラムダ式やStream APIはよく知らないという方は、参考にしてみてください。 バリバリ使っている方は、こんな使い方もあるよ!と教えていただけると嬉しいです。 ちなみにオライリー社のJavaによる関数型プログラミング ―Java 8ラムダ式とStreamがとても参考になりました。 【前提条件】Stream APIの説明に使用するオブジェクト public class Person { private String name; private int age; private List<Person> children; public Person(String name){/*...*
JDK 7のリリース前から気になっていた、Fork/Join Frameworkを触ってみました。かなり今更感があるのは、気にしない方向で…。 Fork/Join Frameworkって? 詳しくは、こちらへ。 http://itpro.nikkeibp.co.jp/article/COLUMN/20110527/360769/?ST=develop&P=1 要は、マルチコアを使い倒すための並列処理フレームワークです。対象にしているのは粒度の小さい(細粒度の)並列処理で、Java 5で導入されたExecutorを使ったフレームワークでは粒度が大きくなってしまうので向いていない…というお話だそうな。 とはいえ、たぶんFork/Join Frameworkは計算処理をメインの用途に想定していると思うので、IOを伴うような粒度の大きな処理はExecutorを使った方がいいのではないかと。 何を使
型パラメータ: K - このマップで保持されるキーの型 V - マップされる値の型 既知のすべてのサブインタフェース: Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, LogicalMessageContext, MessageContext, NavigableMap<K,V>, SOAPMessageContext, SortedMap<K,V> 既知のすべての実装クラス: AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, Hashtable, IdentityHashMap, LinkedHashMap, PrinterStateReasons, Properties,
JDBC には PreparedStatement クラスが用意されていて、SQL 文の一部をパラメータ化することができる。 パラメータ部分のエスケープ処理は JDBC ドライバが行ってくれるので、SQL インジェクション対策として最近では必須になりつつあるこのクラス。しかし、like 演算子を使う場合は、ちょっと注意が必要だ。 Lv 1 ネットで検索してみると、失敗例としてひっかかってくるのがこのパターン。 Statement stmt = conn.prepareStatement("select * from items where name like '?%'"); stmt.setString(1, "hatena"); ResultSet rs = stmt.executeQuery();name が "hatena" で始まる行を選択しようとしているわけだけど、これだと例外が
Java で作成したプログラムから PostgreSQL データベースへアクセスできるようにします。 Java で作成したプログラムからデータベースにアクセスするには JDBC というデータベースソフトごとに用意されたドライバを使用します。 [root@linux ~]# yum -y install postgresql-jdbc Loading "installonlyn" plugin Setting up Install Process Setting up repositories core [1/3] core 100% |=========================| 1.1 kB 00:00 updates [2/3] updates 100% |=========================| 1.2 kB 00:00 extras [3/3] extras 1
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く