【概要】 Look & Feel を自作する方法の紹介。自分好みの Look & Feel を作成して使用したり、公開したりするための Tips。 【キーワード】 Look & Feel、Look And Feel、lnf、ルック&フィール、自作、つくり方 ...
もっと読む
プライベートメソッド/フィールドに外部から強引にアクセスする方法
【概要】 プライベートなメソッドやフィールドに外部から強引にアクセスする方法。カプセル化を破壊するので通常のプログラミングではまず使うべきではないが、ライブラリ利用時にどうしてもある状態をつくり出したい時や、private メソッドに対するテストケースを作成し ...
もっと読む
クラスローダーを自作する方法
【概要】 クラスローダーを自作する方法の紹介。クラスローダーの自作が有効なケースとして代表的なものは次の通り。 ・同一 FQN で異なるクラスを扱いたい(複数バージョンのライブラリを同一 JVM 上で取り扱いたいときなど) ・クラスの定義を Jar ファイルからの読 ...
もっと読む
JDK に標準付属のプロファイリングツール hprof の使用方法
【概要】 eclipse の登場もあり、プロファイリングツールも充実してきた今日この頃であるが、どんなに便利になろうとも昔から存在する機能やツールというのは意外と使い手があったりする。ということで、何とも今更ではあるが、hprof の使い方の紹介。4年前に書いたもの ...
もっと読む
java.lang.ref パッケージの利用方法(SoftReference/WeakReference/PhantomReference)
【概要】 SoftReference/WeakReference/PhantomReference が含まれる java.lang.ref は JDK1.2 の頃に導入されたパッケージであるが、昔から用意されている API の割にあまり使われていない。このパッケージを利用するとプログラムからガーベージコレクタとの対話を可能に ...
もっと読む
アンボクシング使用時の注意点
【概要】 Autoboxing は便利な機能である。 だが、実際の挙動を表すコードが隠れてしまう分、意外なところで問題が発生したりして注意が必要である。例えば私が最近見た例だと、次のようなものがある。 ...
もっと読む
シリアライズを利用したディープコピー
【概要】 オブジェクトをディープコピーに対応させる際に、コピー対象のオブジェクトごとに clone() メソッドを定義していく手間を省くことができるシリアライズを利用したディープコピーの方法の紹介。 【キーワード】 ディープコピー、Deep Copy、シリアライズ、 ...
もっと読む
ファイナライザ・ガーディアン
【概要】 サブクラスの実装で finalize() メソッドがオーバーライドされており、その実装が誤ってスーパークラスの finalize() メソッドを呼び出し忘れてしまっても安全にスーパークラスのファイナライズ処理が行えるようにしたい。 【キーワード】 ファイナライザ ...
もっと読む