Groovy
なんとなく今まで正規表現を回避してたんだけど、定型文字列を String のメソッドだけで解析するの面倒すぎるので、Groovy パワーであれこれ試してみました。 Groovy 使うと、グループを使った正規表現でマッチしたグループの内容を List の要素アクセスのよ…
別に Windows 厨というほど使い倒してるワケではないんですが、Windows でも GVM (Groovy enVironment Manager →) を使いたいなぁと思って試してみました。 GVM は Groovy 関連のツールを簡単にダウンロード & インストールできるツールです。 Groovy をはじ…
Java/Groovy のテスティング・フレームワーク Spock の使い方をあれこれ調べてみました。 まぁ、Gradle 使えるならそれに越したことはないですが、なんとなく Maven3 やコマンドラインからの使用方法も試してみました。どうも Maven3 から GMaven が Groovy …
Java8 の目玉機能はラムダ式ですが、その次によく取り上げられるのが新しい日時 API である Date and Time API(JSR-310) でしょう。 ただ、この API はナカナカに取っつきにくいという非難の声が。 まぁ、日時の扱い自体が面倒なので仕方がないという擁護の…
前回、GDK が List インターフェースに追加している getAt() メソッドの挙動をちょっと詳しく見てみました。 今回は、もしそれを実装するとどんなコードになるかを見ていきます。 実装に興味ない方はスルーよろしく。 あと、実際の GDK のソースコードは参照…
最近 GDK が List に追加しているメソッドをあれこれ試しているんですが、Java の配列のように要素を取得できる [] 演算子、すなわち getAt() メソッドにいろいろなインデックスを渡したときの挙動がいまいちシックリこないので、もう少しあれこれ試してみま…
今回は GDK が List に追加しているメソッドのうち、関数型言語にある型、シーケンスに関するメソッドを見ていきます。 シーケンスは順序づけられたオブジェクトの列といったイメージで、要素列の走査は1度しか行われない気持ちです*1。 Groovy にはシーケン…
『GDK の List がこんなに可愛いわけがない。』の List 編1、List 編2で、GDK が List インターフェースに追加しているメソッド getAt(), putAt() を見てきました。 そのときに API を見たりサンプルコードを書いたりしていて思ったのですが、インデックスを…
今回は GDK が List インターフェースに追加しているメソッドのうち、要素の追加・削除に関連するメソッド。 前回見た要素の取得に関するメソッド getAt() と対になっている putAt() メソッドなどを見ていきます。 今回見ていくメソッド: boolean addAll(in…
前回までで GDK が Object クラスや Collection クラスに追加しているメソッドを見てきました。 ただ、普段よく使う型はこれらというより今回から見ていく List でしょう。 Object や Collection に追加されていたメソッドのサンプルを書いているときも、基…
今回は GDK が Collection インターフェースに追加するクラスのうち、型変換をするものを見ていきます。 今回でやっと Collection 最後かな。 ただ、まだ List をやらんといかんのだが。 型変換は便利だけどあんまり面白くないんでサラッといっちゃいましょ…
今回は GDK が Collection インターフェースに追加している多重コレクション(多次元コレクション)に関連するメソッドを見ていきます。 今回扱うのは以下のメソッド: Collection flatten() Collection flatten(Closure flattenUsing) Collection split(Clo…
今回は GDK が Collection インターフェースに追加しているメソッドの内、Reduce 処理を行うものを見ていきます。 Reduce 処理とは各要素もしくはそれから得た値などをある意味で「足し上げる」メソッドです。 今回扱うメソッドはは以下のもの: Number coun…
今回は GDK が Collection クラスに追加している、いろいろなコレクションを生成するメソッドを見ていきます。 「コレクションを生成する」と言っても、(static) ファクトリ・メソッドを集めて見ていくというわけではなく、メソッドの返り値がコレクションな…
今回は GDK が Collection クラスに追加しているメソッドの内、要素の蒐集を行うメソッドを見ていきます。 メソッド名は「collect」で始まるもの。 要素の蒐集とは、引数としてとったクロージャを各要素に適用し、その結果返される要素を集めて新たなコレク…
今回は GDK が Collection クラスに追加しているメソッドの内、要素を検索するメソッドを見ていきます。 メソッド名でいうと「find」で始まるメソッドです。 これらは GDK が Object クラスに追加しているメソッドを見ていたシリーズ「あんたに GDK の何が分…
今回は GDK が Collection クラスに追加している要素の追加・削除に関連するメソッド。 要素の追加・削除は Java の標準 API にもあれこれありますが、GDK が追加しているのは Groovy の演算子に対応するもの(plus(), leftShift())、可変長引数(配列 Obje…
さて、今回から GDK が Collection に追加しているメソッドを見ていきます。 Object クラスに追加されているメソッドも、オーバライドされているものはまた扱います。目次 集合演算 文字列関連 要素の追加・削除 要素の検索 findXxxx() 要素の蒐集 collectXx…
今回は Collection に突入しようかと思ってたんですが、前回のメタクラスの流れにのって、GDK が Class クラスに追加しているメソッドを見ていきます。 今回見ていくメソッドは以下の通り: boolean isCase(Object switchValue) // インスタンス生成 Object …
今回は GDK が Object クラスに追加しているメタプログラミング用のメソッド。 Groovy ではメタオブジェクト・プロトコルという方式を使ってオブジェクトの挙動を動的に変更できるので、メタプログラミングを行いたい場合はメタクラスの設定をあれこれ行うこ…
今回は GDK が Object クラスに追加しているデバッグ用のメソッドを見ていきます。 主に print(), println() のような標準出力へメッセージを書き出すメソッドや、オブジェクトの情報を文字列に変換する toString(), dump(), inspect() などを扱います。 具…
前回に引き続き、今回も GDK が Object クラスに追加しているコンテナ・メソッドを見てきます。 今回見ていくのは find で始まる名前のメソッド。 結構あれこれあるんですね。 今回見ていくメソッドは以下のもの: Collection findAll(Closure closure) Coll…
今回は GDK が Object クラスに追加しているコンテナ・メソッド。 ちょっと多かったので前後編に分けます(後編は findXxxx() メソッド)。 コンテナ・メソッドとはコレクションや配列のような、要素を保持する入れ物を指して使っています。 今回扱うメソッ…
今回は GDK が Object クラスに追加しているプロパティ、リフレクション関連のメソッド。 (正式な仕様はともかく)Groovy でのプロパティとは getter/setter メソッド*1で値の取得・設定ができるメンバという感じでしょうか。 Groovy ではフィールドを定義…
最近 Java 8 の Stream による Map/Reduce 処理の API をあれこれイジってて、GDK の同様のメソッド群と比べてみようと思い GDK の API 見てたんですが、each() とか collect() とかが Object クラスに定義されてて List や Collection の前に Object クラス…
今回は、以前の記事で簡単に見た traverse() メソッドをもう少しきちんと見て行きます(目次)。参考 URL 「Groovy JDK」 File オーバーロードされた3つの traverse()まずは traverse() メソッドのオーバーロードされているシグニチャを見てみましょう: voi…
さぁ、今回は GDK が File クラスに追加するメソッドのうち、今まで扱ってなかった残りのメソッドを見ていきます(目次)。 残りのメソッドは以下の通り: メソッド 返り値 since ファイル操作 size()renameTo(String newPathName) longboolean 1.5.01.7.4 …
今回はデータストリームとオブジェクトストリームに関連するメソッド(目次)。 あんまり詳しくないんで、サラッと流しマース。データストリームまずはデータストリームに関連するメソッド。 データストリームとは、Java のプリミティブ型のストリームって感…
今回は GDK が java.io.File クラスに追加している、ファイル・ディレクトリの走査に関するメソッドを見ていきます(目次)。 扱うメソッドは下表の通り: メソッド 返り値 since 非再帰 eachFile(Closure c)eachFile(FileType type, Closure c)eachDir(Clos…
前回に引き続き、今回も GDK が java.io.File に追加している文字列関連のメソッドを見ていきます(目次)。 readLines() メソッドは各行を String オブジェクトとする、List<String> オブジェクトを返す「一括読み込み」メソッドです。 それ以外のメソッドは、Closu</string>…