skillup

技術ブログ

Java

型情報の取得・活用について

投稿日:2015年7月26日 更新日:

Javaで抽象度の高い実装を行うときに必要となる型情報の活用法について。

できるとできないとでプログラムの応用範囲が変わってくるのでメモっときます。

こちらのエントリーと合わせて読むといいと思います。

なお解説はすべてコメントに入れてあります。

クラスインスタンスの作成方法

これが最初のうちは全然わかりませんでした。

要はあるクラスのメソッド、パラメーターなどそのクラス自体の情報を取得したいときに使われます。

例えばStringのクラス情報を取得したいときはClass<String>になります。

Class<T>(ジェネリクスでの定義)やClass<?>(特定の型でなく汎用的な型情報の取得)などにも使われます。

以下の方法で取得できます。

メソッド情報の取得

クラスの情報の取得があるのなら当然メソッドの情報を取得する方法もあります。

実際にソースを見てみましょう。

ソース

Sample.java

Test.java

実行結果

メソッド1 私の名前はhogeです
メソッド2 私の名前は hogeです
メソッド3 私の名前は hoge.No3です。
メソッド名:getName
メソッド名:setName
パラメーター: java.lang.String arg0
メソッド名:showMessage
メソッド名:showMessage2
パラメーター: java.lang.String arg0
メソッド名:showMessage3
パラメーター: java.lang.String arg0
パラメーター: int arg1

//ここから下はJavaのクラスに標準で実装されているメソッドです

メソッド名:wait
メソッド名:wait
パラメーター: long arg0
パラメーター: int arg1
メソッド名:wait
パラメーター: long arg0
メソッド名:equals
パラメーター: java.lang.Object arg0
メソッド名:toString
メソッド名:hashCode
メソッド名:getClass
メソッド名:notify
メソッド名:notifyAll

参考リンク

Javaのリフレクション

-Java

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

JPAでの多対多のリレーション

以前、このエントリーでJPAのリレーションについて説明しました。 今回は多対多について説明します。 Contents1 テーブル構成2 ソース2.1 CDのエンティティ2.2 Artistのエンティテ …

no image

DBUtils活用 その2

以前DBUtilsの活用を書きましたが、他の使い方がわかったのでメモ 以前はSelectでList<エンティティ>を取得したのですが、List<Map>でも取得できます。 ソー …

no image

JavaEEでリダイレクトを伴うデータ入出力(flashの活用)

JavaEEで何らかの処理を行い、リダイレクトさせる場合、リダイレクト前のデータを保存し、リダイレクト後のページにデータをもちこしたいときなどがあると思います。 オブジェクトの変数自体はスコープアノテ …

no image

文字列変換系処理まとめ

Javaで文字列の変換(全角、半角など)の処理のまとめです。 ブログに記事として書こうと思ったのですが、丸々コピペになってしまうので、それじゃあ元リンクを紹介したほうがいいかなと思い、今日は基本的にリ …

no image

dbUnitの使い方

えーJavaで有名なテストツールDBUnitについて。 DbUtilではありませんので間違えないように。(私は最初間違えました・・・) まだ全然使い込んでるわけではありませんがどんなことができるかとい …

アーカイブ