skillup

技術ブログ

Java

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

投稿日:

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

参考リンク

 http://ichitcltk.hustle.ne.jp/gudon2/index.php?pageType=file&id=java001_reflection

-Java

執筆者:


comment

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

関連記事

no image

mavenでJavadoc出力

Netbeansでプロジェクトから右クリックでjavadocの生成はできますが、実はmavenでビルドするときにJavadocを生成できます。 ただ出力するだけではなくてパラーメータをいろいろとセット …

no image

Seleniumの値基本動作まとめ

以前、「Seleniumでの画面テスト」というエントリーでのテストフレームワークとして、Seleniumを紹介しました。 上記のエントリーですが、単なるインストールと基本的な起動、簡単な文字入力ぐらい …

no image

動的な置換

前回、置換に関する記事をまとめましたが動的な置換について勉強する機会があったのでまとめておきます。一般に置換表現というのはほとんどが静的なものかと思います。 例えば <intpu type=&# …

no image

JPAでの算術関数の型&mavenコンパイルプラグイン

本日も小ネタなので2つ同時に扱います。 Contents1 JPAの算術関数2 mavenのコンパイル JPAの算術関数 JPAでは以前、MySQLなどと同じように算術関数を使えると書きました。 参考 …

no image

CentOS上にglassfish構築+arquillianテスト

JavaEEの開発でアプリケーションサーバーとしてglassfishを使っています。 今回、CentOS(ver6.6)に立てる機会があったので、そのネタを共有したいと思います。 Contents1 …