ほげにっき

hogedigoの日記

java

Java7 try-with-resourcesのsuppressed exceptionsを検証

前エントリでちょこっと書いたJava7 try-with-resourcesのsuppressed exceptionsを検証する。 public class Test implements AutoCloseable{ private int index; public Test(int index) { super(); this.index = index; } public static void main(String[]…

Java7 AutoCloseableを使ってスマートにリソース解放する

Javaでは昔からリソースの解放がやたら面倒くさかった。 デストラクタはないしfinalizeはいつ呼ばれるかわからないので、try-finallyで明示的に解放メソッドを呼ぶ必要がある。finally節ではさらにnullチェックとか入ってひたすらややこしいコードになる。 I…

1st class properties

Java7で導入が見送られた1st class properties(Java Beansプロパティ仕様にgetter、setterが不要になるもの)はJava8でも含まれない様だ。完全になくなったかな? 残念だったけど、最近、これが導入されてなくて良かったと思ったことがあった。一括請負の納…

Java8にラムダ式

Lambda expressions (”closures”) for higher developer productivity, better leveraging of multi-core CPUs, and bulk data-processing enhancements to the Java collections APIs. http://www.oracle.com/us/corporate/press/512956?msgid=3-5175515024…

JAVA SE 7 RELEASED

Java SE - Downloads | Oracle Technology Network | Oracle ようやくリリースされた様だ。 あんまりインパクトなさそうだけども。。

JAVA 7: MOVING JAVA FORWARD

Oracle's Java Developer Newsletter July 2011より It's been a long time coming: Java 7 launches at the end of the month! (Binaries are scheduled to be available on July 28.) ようやくですか・・・

NumberFormat#setParseIntegerOnly

これは小数点以下を切り捨てる、というモノではなくて、整数部分しかパースしないよ、というものの様だ。どうも勘違いしていたみたい。 メモメモφ(..)

Eclipseのメソッド補完で余計な括弧が補完されて面倒な件

Eclipseでメソッド名をコード補完するときに、すでに括弧が存在するのにまた括弧が出力されて面倒なことがある。 例えば str = str.replaceFirst("xxxx", "yyyy"); みたいなコードがあって。このメソッドを引数はそのままでreplaceAllに書き換えたいとしよう…

配列の初期化

javaで配列をnewしたんだけど、変数に代入しなかったらコンパイルエラーになったよ。 new Hoge[0]; たしかに意味はないコードだけれども。 javaやって10年くらいになるけど、知らんかったよ。

拡張ClassLoaderを用いたユニットテスト

static fieldとかstatic initializerを多用しているとJUnitのテスト時に躓く。一度しか初期化されない値をテストメソッド毎に切り替えたりとか・・。単体テストの為にsetter作るのもなんだか本末転倒だし、リフレクション使うのもなんだかテストの意義が崩れ…

ComparableとかComparatorとか

Comparable#compareToとかComparator#compareとか、比較メソッドで戻り値にintを返すものがある。 例えば前者でa.compareTo(b)とした場合、戻り値はa>bならば正の数、a*1で、文面だけで覚えていると使うとき(または読むとき)に少し考えてしまう、という人…

JAVA Compiler APIを利用して高速にプロパティアクセスする

JAVA Compiler APIをつかってなんか出来ないかなシリーズ第2弾! といっても第1弾より先に試したものだけども。。メモ代わりにソース載っけます。ちなみに第1弾はこちら↓ JAVA Compiler APIを利用してBeanのgetter、setterを不要にする - ほげにっき 概要…

JAVA Compiler APIを利用してBeanのgetter、setterを不要にする

以前から、「javaのgetter、setterは面倒だ」と書いてきた。 2007-10-12 - ほげにっき JDK7から1st class propertyてのがサポートされてgetter、setterが不要になるはず・・だったのだが、どうやらなくなりそうみたいでガクリorz。 まあ、個人的にはpublic f…

なんでもかんでもStringBuilder使えって

おこられた。リテラルと連結演算子の方が可読性いいと思うんだけどな。これも主観だけど。。 もちろんパフォーマンスに影響がありそうなところはStringBuilderつかってますですよ。 それにしても String message = "エラーメッセージが長くなるときとか、こ…

JSF

WebObjectsに似てる。Component指向するとこんなカンジになるんだな。それでも、改めてWebObjectsて洗練されていたなぁ、と思ったり。 なんだかんだ言って、自分が選べる立場にいるのならSAStrutsとか選びそうだけど。。 まあ何を使うにしても、ソースをキレ…

genericsキャスト警告

eclipseでgenericsを使用してコーディングしていて、generics非対応の外部ライブラリを使用していると、キャスト警告がたくさん出てウザ!となることがある。ライブラリの返したgenercis非対応コレクションを自分のコードのgenerics対応コレクション型変数に…

続javase6 scripting

javascriptやっぱり遅いなー、Rhinoでバイトコードにコンパイルすれば早くなるかな・・・などと思索していたら、javase6のscriptingにjavax.script.Compilableなるインターフェースがあることを知った。まずはコンパイルしないパターン ScriptEngine engine …

NoSuchMethodError HSSFCell.getRichStringCellValue

Seasarを用いた開発で、DB状態とエクセルファイルを比較するテストケース(S2Unit使用)が、ずっと通っていたのにいつの間にかエラーになっていた。 testIndex(com.godigo.mm.bookstore.action.BookAddActionTest) java.lang.NoSuchMethodError: org.apache.po…

JSP2.0が全然浸透していない件

出てから随分経つのになぁ。タグファイルとかフラグメントとか、かなり便利だと思うんだけど、現場で知っている人がかなり少ない。 それどころかELも。未だにstrutsのlogicタグとかbeanタグが使われている。なんでだろ〜?? いやぁ、アンチJSPならまだ話も…

Tomcatのセッションシリアライズを止める方法

を昔探していたのだが結局みつからなかった。CATALINA_HOME/conf/context.xml はあ。こんなとこに・・・。メモメモφ(..)

javaのプロパティについて

以前、値を持つだけの(Cの構造体みたいな)クラスでgetter、setterを用意するのが馬鹿らしい、と書いたが・・・ ゲッターとセッター シンプルなプロパティ - ほげにっきどうもjava7でほぼ自分のストレスが解消されるみたいだ http://journal.mycom.co.jp/a…

jconsoleいいね

JMXってだいぶ前からある気がするけど、素通りしてきた。マスターするといろいろ便利かな?Windowsのローカル接続と、同一PC上のリモート接続は上手くいったのだが、WindowsクライアントからLinuxサーバへのリモート接続でハマった。まだハマリ中だがとりあ…

Javaとメモリーリーク

「JavaはGCがメモリを自動解放するのでメモリ管理をしなくてよい、てよく言うけど、そんなことはない。」 ふむふむ。。 「だからnullを代入して明示的に解放しないとダメ。」 ん?なんか怪しいこと言い出したぞ。 「でも、自分の把握していない場所で参照さ…

クラスがどこからロードされているかを調べる。

[Java] ブートストラップ ClassLoader: Thief's Guild Blog メモメモφ(..)

JVMTI

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracleメモメモφ(..)

シンプルなプロパティ

Seasar2 - S2JDBC - S2JDBCとは Javaでプロパティを作るには、フィールドとgetter、setterメソッドの定義が必要でした。 getter、setterメソッドは、カプセル化の観点から必要とされてきましたが、本当にどんな場合でも必要なのでしょうか。 Javaでは、テー…

ゲッターとセッター

フィールドをpublicにするな??ゲッターとセッターを用意しなさい??カプセル化大事?? 腑に落ちん。。機械的にゲッターセッター用意するんなら、publicフィールドのみの構造体と変わらんと思うのだけど。めんどくせ。

怖いソース解答編

リクエストがあったので解答編。http://d.hatena.ne.jp/digo/20060719#1153294756 で、どこが怖いのか。まあ、そんなに大した話ではないのですが・・・。例えばこのユーティリティーがどう使われるのかを想像すると、getYear、getMonth、getDayの各メソッド…

ドキュメント生成

J2SE 5.0対応の、詳細設計書をソースから自動生成してくれるツールが欲しいよー。どっかにいいのないかな。多少高くてもこの際構わん。

Tigerから、Hoge.classと記述しただけではstatic initializerは実行されない。

http://d.hatena.ne.jp/masanobuimai/20060623#1151057401 しらんかった。。 今までに依存した書き方はしていないと思うけど・・・。 ちょっと心配。