ぐるぐる Groovy。。

記事書いていませんでしたが、最近も Groovy くんにはだいぶお世話になっております。

テストデータ作成や小物ツールをつくるのに非常に便利な Groovy。

開発環境も Eclipse にプラグイン入れるだけでフルセットそろいますし、テキストエディタだけでも jar ひとつでいけますし、実行環境も Java が入っていればいいだけなので、人にも渡しやすく非常に重宝しております。

ということで、ちょこちょこいじっている訳なんですが最近気がついたこと。

ふと Groovy 1.8 系で下のコードを。

import org.codehaus.groovy.runtime.NullObject

// Groovy だとどちらも普通(Java だと上だけ通る)
assert(Integer.valueOf(127) == Integer.valueOf(127));
assert(Integer.valueOf(128) == Integer.valueOf(128));

// なるほど
assert(null == null)
assert(null.equals(null))
// なんとなく Groovy が不思議
assert(null != new NullObject())
assert(!null.equals(new NullObject()))

Groovy の == は equals の演算子オーバーロード。

というわけで、上の2つの assert は普通に通ります。 ちなみに Java だと両方通らない感じですが、上は通ります。 結構謎ですね(笑)

で、したの null のほう。 null もオブジェクトっぽいのですが、最後の2つの assert が不思議な感じ。

なんとなく別件ですが、このパッチがそれっぽい…。

[#GROOVY-4985] null and .with{} – jira.codehaus.org

Currently this fails:

null.with { assert it == null }

単純にぼくがなんかぼけてるのか、、、まぁなんだってわけでもないのですがふと(笑)

あ、そうそう、壁紙変えました。 🙂

Screenshot20111210

は、張る画像がなかったわけじゃないんだからね!

このエントリーをはてなブックマークに追加
  • redmine11.png
    Redmine 1.2.2 + Eclipse Mylynでチケット管理
    Redmine, Eclipse, Mylyn, プラグイン, git, ff, redmin-mylyncon, バージョン, 感じ, Connector, dev, net, now, sourceforge, チケット, 作業, 対応, 設定, 1.2, 1.2.2
  • xbmc05.png
    ThinkPad T420s + Ubuntu 11.10 + xbmc 導入
    420, 61, Ubuntu, シリーズ, 液晶, 設定, ThinkPad, キーボード, 感じ, 11.04, 11.10, Windows, apt-get, xbmc, スピーカ, ドライバ, 16, Core, Japanese, Microsoft
  • xlsbeans02.png
    Excel ファイルの操作を Groovy から行う
    画面, 項目, String, public, エクセル, XLSBeans, 物理, Groovy, ファイル, 定義, private, str, Column, columnName, Excel, VBA, class, upper, xls, Bean
  • groovy02.png
    ぐるぐるぐる~び~。
    Groovy, groovy, jar, notify, gnome, 1.8.0, import, java-gnome, org, println, スクリプト, File, Java, bin, def, execute, groovy-, gtk, opt, ぐる
  • macfusion01.png
    Mac での開発環境構築
    Mac, サーバ, OS, ファイル, Eclipse, リモート, 操作, Linux, PHP, eclipse, for, 設定, FUSE, PDT, SSH, enter, to, コマンド, 起動, 3.1.1

コメントを残す

メールアドレスが公開されることはありません。