No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

Java

Groovyによるうるう年チェック

はじめに Javaによるうるう年チェック - お仕事の備忘録みたいなもの で画期的なうるう年判定を行っていた。 それは、 java.util.Calendar#getActualMaximum(Calendar.DAY_OF_YEAR) を使うというもの。 Calendar#getActualMaximum Calendar#DAY_OF_YEAR この…

Javaで型トークンを利用したファクトリクラスを書いてみた

はじめに Javaでインスタンスを生成するクラス、いわゆるファクトリクラスを書く場合、色々な書き方があると思いますが、特定のクラスのインスタンスのみしか作れないとわりと不便なので、今回は、型トークン(クラスクラスと呼ばれるやつですね: Class<T> で</t>…

javaとかScalaで全角を半角に変換する方法をGroovyでもやってみた

はじめに javaとかScalaで全角を半角に変換する方法 - ブログなんだよもんをGroovyでもやってみた。 元記事でも触れられておりますが、確かにこういう処理は再発明はしたくない。 ソース Groovyの場合、Grape(@Grabアノテーション)でMavenリポジトリなどから…

Javaでenumを使ってプロパティファイルのキーを定義する

はじめに enumでインタフェースが実装できることが分かったので、その応用例の一つとして、Javaでenumを使ってプロパティファイルのキーを定義するサンプルを書いてみました。 プロパティファイル読み込みは何が問題か Javaでの外部プロパティファイルの機構…

Javaのenumは継承できないけどインタフェースが継承できる

はじめに Javaのenumって便利ですよね。enumを使い続けていくとグルーピングしたくなってくる事があると思いますが、継承はできないので、そんな場合はインタフェースを実装してやるといいようです。 とりあえずテストを書いた 解説 インタフェース interfac…

JavaでPropertyDescriptorを使ってBeanのプロパティに簡単にアクセスする

はじめに Java標準のSDKに java.beans パッケージがありますが、この中にJavaBeansの getter/setter を便利に扱える PropertyDescriptor というクラスがあるようです。 クラス階層 java.beansClass PropertyDescriptorjava.lang.Object └java.beans.FeatureD…

JavaEEでリクエストのHTTPヘッダに値を付加する

タイトルの通りなんですが、いまやってるプロジェクトでJavaEEでリクエストのHTTPヘッダに値を付加して持ち回る必要が出てきていまして、その方法を模索中です。とりあえず色々ググってたどり着いた案は、今のところ以下のような感じ。 サーブレットだと、#s…

Mac OSXにOpenJDK7をインストールしてGroovyを実行する

こちらの@yusukeyさんの記事を参考にMac OSXにOpenJDK7をインストールしてGroovyを実行するところまで試してみたのでメモしておきます。 1.まずはOpenJDK7をダウンロード Mac OSX用のバイナリが以下から手に入るのでダウンロードしてきます。 http://code.go…

現場で使えるGroovy(その3)「JavaにREPLが無いならgroovysh, groovyConsoleを使えばいいじゃない」

このシリーズの一覧はこちら はじめに ご存知の通り、JavaにはREPLがありません。しかし残念がることはありません、そう、あなたにはGroovyが付いています。 Groovyがこれらの特性とJavaとの親和性を高いレベルで同時に実現していることです。 (中略) ・Ja…

5分で理解するProject Coin

はじめに そろそろJDK7が登場する時が近づいてきたのでJavaプログラマならProject Coinを先取りして予習しておくべき時期になってました。Project CoinというのはThe Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR#…

Java使いをGroovyに引き込むサンプル集

はじめに Java使いをScalaに引き込むサンプル集 | mwSoft のGroovy版を書いてみました。 記事中に登場するサンプルコードや文章など多くの部分を引用させていただいております。 (動作確認: Groovy Version: 1.7.7 JVM: 1.6.0_22) 前書き Groovyという言語を…

JavaからGroovyへ移行する簡単なステップ

この記事は From Java to Groovy in a few easy steps | Groovy Zone の和訳です。思いっきり意訳です、あしからず。GroovyとJavaは、いとこみたいに近い存在で、構文がとても似ているからJava開発者にとってGroovyを覚えることはとても簡単です。Javaプログ…

Javaでビープ音を鳴らせ!

半分くらいネタです。ひょんなことからJavaのコード内でビープ音を鳴らすメソッドを発見したのでメモしておこうかなと。 ソースコードはこんな感じ 10.times { java.awt.Toolkit.getDefaultToolkit().beep() System.sleep(100) } 上のサンプルはGroovyですが…

Groovyでjava.text.Collatorを試してみた

はじめに こちらにて、java.text.Collatorの使い方が示されていた。 知らなかったんですが、このCollatorというクラスはソートで使うらしく、通常のソートではUnicode順になってしまうところを良きに計らってくれるようです。 ソース (動作確認: Groovy Vers…

BigInteger, BigDecimalって全角OKなんだね

タイトルの通りです。 BigIntegerやBigDecimalは文字列からインスタンスを生成できますが、その際、全角も許されるみたいです。 地味にすごい! new BigInteger("123").intValue() // => 123 new BigDecimal("123.45").doubleValue() // => 123.45d

JLabelなどででHTMLを使いたい時のTIps

SwingのJLabelなどでHTMLを使いたい時は先頭と末尾に空白が入っているとだめらしい。 new JLabel(" <html> .... </html> "); // ←これNG new JLabel("<html> .... </html>"); // ←これOK たったこんな事で1時間程度はまった…やはりGUIはいろいろと勝手が違うね。

HatenaHaiku4J v1.2.1リリース

HatenaHaiku4J v1.2.1をリリースしました。こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v1.2.1 2010-05-09 ・HatenaHaikuAPIHTMLでmp3リンクの対応。(embedタグが閉じられていない) MP3タグの部分の対応です。(bug fix)よろしくお願…

HatenaHaiku4J v1.2.0リリース

HatenaHaiku4J v1.2.0をリリースしました。こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v1.2.0 2010-05-07 ・HatenaHaikuAPIHTML(HTMLスクレイピング版)を追加した。 前回からだいぶリリース間隔が開いてしまいましたが、やっとリリ…

HatenaHaiku4J v1.1.4リリース

HatenaHaiku4J v1.1.4をリリースしました。こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v1.1.4 2009-11-18 ・StringUtil#encodeで「+」「.」「-」「*」「_」もURLエンコードするよう修正。 これのバグフィックスです。 よろしくお願…

HatenaHaiku4J v1.1.2, v1.1.3リリース

HatenaHaiku4J v1.1.2とv1.1.3をリリースしました。こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v1.1.3 2009-11-07 ・半角スペースが"+"に変換されてしまっていた問題を修正。 HatenaHaiku4J v1.1.2 2009-11-01 ・HatenaHaikuAPILig…

HatenaHaiku4J v1.1.1リリース

HatenaHaiku4J v1.1.1をリリースしました。こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v1.1.1 2009-10-24 ・Config#getVersion()追加により、バージョン情報を取得できるようにした。 ・KeywordAPI, UserAPIをRecudeOpに対応させた…

HatenaHaiku4J v1.1.0リリース

HatenaHaiku4J v1.1.0をリリースしました。こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v1.1.0 2009-10-21 ・id:v593kdrg氏による集約操作のインタフェースを追加。 ・Status, Keyword, UserにComparableを実装させた。 Sample005.j…

UUID

Java1.5からjava.util.UUIDというクラスが追加になったようで、このクラスを利用することで、簡単・お手軽にユニークなIDが取得できるようです。とかすると 0e8f5405-4035-41ff-8ca0-571a6b441bc6 みたいな文字列が取得できるようです。 便利便利! 参照 汎…

HatenaHaiku4J v1.0.3リリース

HatenaHaiku4J v1.0.3をリリースしました。こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v1.0.3 2009-09-24 ・ユーザ名取得用のメソッドを追加。⇒HatenaUtil#getUserName(String userId) HatenaHaiku4J v1.0.2 2009-09-24 ・ソースの…

HatenaHaiku4J v1.0.1リリース

HatenaHaiku4J v1.0.1をリリースしました。 こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v1.0.1 2009-09-22 ・ユーティリティとしてHaikuURLを追加。⇒サンプル:Sample004.java ・ユーティリティHatenaUtilに#escapeHatenaNotation(S…

Re:Javaで文字列の最後に現れる指定した文字列を削除する

元記事はこちら >>私なら、正規表現を使ってさっくりやるなぁ。 private String remove(String str, String removeStr) { return str.replaceFirst(removeStr + "\$", ""); }

HatenaHaiku4J v1.0.0リリース

HatenaHaiku4J v1.0.0をリリースしました。 こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v1.0.0 2009-09-18 ・画像をfotolifeにアップロードしつつ投稿するAPI機能を実装。 ・画像をFileで指定、URLで指定、byte[]で指定する方式を…

HatenaHaiku4J v0.2.1リリース

HatenaHaiku4J v0.2.1をリリースしました。こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v0.2.1 2009-09-15 ・LoginUser#createはあまり意味がなかったため、普通のコンストラクタにした。

HatenaHaiku4J v0.2.0リリース

HatenaHaiku4J v0.2.0をリリースしました。こちらからどうぞ。主な変更点(changelog.txtより抜粋) HatenaHaiku4J v0.2.0 2009-09-15 ・クラス名変更 HatenaHaikuAPIWithoutAuth -> HatenaHaikuAPILight。 ・Keyword, User, Statusに#apiを付属させ、各インス…

HatenaHaiku4J

HatenaHaiku4JというはてなハイクAPIのラッパーを書いてます。Pure Javaで作っておくことでGroovyやらJRubyやらJythonやらScala?やらから利用ができてとても便利そうだなぁと思ったのが開発開始の動機です。よろしくどうぞ。 ※なお、動作バージョンは JDK5.…