IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
はじめに 最近のプログラムの多くは、最初から機能がすべて確定したものではなく、後からプログラマが拡張していけるような形をとるようになってきています。この種のプログラムでよく用いられるのが「プラグイン」でしょう。仕様にそって作成すれば誰でもプラグインを作り機能を拡張していくことができるというのはなかなか魅力的です。そこで、Javaプログラムでこうした「プラグインによる機能拡張」を実装する方法について考えてみることにしましょう。対象読者Javaを使ったプログラム作成を行っている中級レベルのプログラマ。プラグイン型のプログラム拡張に興味がある方。 プラグインによるプログラム拡張とは? 多くのプログラムでは、プラグインと呼ばれるプログラムを作成することで機能を拡張することができます。このプラグインというのは、大抵の場合、次のような働きをします。あらかじめ用意されている仕様に沿ってプログラムを作成す
プログラムからファイルなどのストレージを用いる場合、ファイル名や存在場所を直接指定する方法では保守性が悪化します。また、本番とテストで違う環境を用いる場合に、思わぬ手間が掛かったり、変更し忘れてトラブルに発展することもあります。 よって、ストレージへのアクセス方法を標準化し、プログラムの中にはファイル名や存在場所を記述しないことで、環境が変わってもプログラムの変更を発生させないことが望ましいでしょう。そこで、Javaアプリケーションやサーブレットなどからデータベースを活用する場合に用いられるのが、JDBC/ODBC(Java DataBase Connectivity/Open DataBase Connection)です。 例えば、JDBC/ODBC経由でマイクロソフトのAccessのデータベースに接続する場合、WindowsのODBCデータソースアドミニストレータを使って、「ODBC
【概要】 プライベートなメソッドやフィールドに外部から強引にアクセスする方法。カプセル化を破壊するので通常のプログラミングではまず使うべきではないが、ライブラリ利用時にどうしてもある状態をつくり出したい時や、private メソッドに対するテストケースを作成したいときに、テストケースのためだけにメソッドのシグニチャを変更したくないときなどには便利。かなり有名な方法ですが、一応、Java 関連の Tips ということで。 【キーワード】 private、プライベート、method、メソッド、field、フィールド、アクセス、変更、呼び出し、リフレクション、reflection、getDeclaredMethod、getDeclaredField 次の2つの Java ファイルを用意し、プログラムを実行する。 [プログラム: Person.java] public class Person {
【概要】 クラスローダーを自作する方法の紹介。クラスローダーの自作が有効なケースとして代表的なものは次の通り。 ・同一 FQN で異なるクラスを扱いたい(複数バージョンのライブラリを同一 JVM 上で取り扱いたいときなど) ・クラスの定義を Jar ファイルからの読み込み / HTTP からのクラス定義のロードなどの標準的な方法ではなく、独自の方法で動的にロードできるようにしたい。 【キーワード】 クラスローダー、ClassLoader、自作、つくり方 1. DirectoryClassLoader の作成 今回はクラスローダー作成のはじめの一歩として、極めてシンプルで原始的、かつ不完全なクラスローダーを作成する。具体的には指定されたディレクトリに格納されているクラスファイルを動的にロードするだけの DirectoryClassLoader を作成する。 import java.io.Bu
はじめに ReflectionパッケージのProxyを利用すると、指定したインターフェイスに対して、そのインターフェイスを実装したクラスとインスタンスを動的に作ることができます。 本稿では、Oracle JDBCドライバの制約をProxyを利用して回避する方法を示すことで、Proxyの具体的な利用方法を説明します。 Oracle JDBCドライバはJ2SEのAPI規定と異なり、GCによるConnectionやStatementの自動クローズを行いません。そのため、これらのJDBCオブジェクトを自動的にクローズする他のJDBC実装用のコードを流用するとリソースリークの原因となります。これを回避するには、アプリケーションがすべてのStatementなどのオブジェクトをクローズするか、またはミドルウェアなどでアプリケーションが作成したすべてのJDBCオブジェクトを保持しておき、なんらかのタ
「トラだ、トラだ、お前はトラになるんだ !!」 というわけで J2SE 5.0、コードネーム Tiger の新機能を紹介していきます。 まちがい、コメント等ありましたら、遠慮なくおねがいします。 JSR-176 J2SE 5.0 Release Contents http://jcp.org/en/jsr/detail?id=176
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く