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

Seleniumでの画面テスト

普段テストはJunitで単体テストを書いていますが、画面からのテストなどは当然チェックできません。 フレームワークだとどうしても内部構造がわからず画面から直接うごかして確認しなくてはいけないようなケー …

no image

ポリモフィズム(多態性)とは

Javaでオブジェクト指向の考え方の重要な考え方であるポリモフィズムについて。 Contents1 ポリモフィズムとは?2 ソース ポリモフィズムとは? 日常的に使っていながらいざ説明するとなると困り …

no image

char→String変換

Javaでアルファベット小文字全て、大文字全てが入った配列を作成する場合、PHPのrangeのように一気に作る方法はありません。 まあ、コツコツ入力していけばいいのですが、それでは芸がないので、文字コ …

no image

JSFのifタグ

JSFは基本的にテンプレートなので、 HTML+CSS+JavaScript ロジック側からの変数の出力 ループ処理 以上のことをさせることはあまりありません。 が、まれに条件分岐なんかをさせたいとき …

no image

DBUtils活用 その2

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