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

便利すぎる道具の弊害

現在、Javaのプロジェクトでは会社でNetbeansを使っていますが、IDEを使っているばっかりに理解できていないところがありました。便利すぎる道具の弊害ですね・・・ IDEについて一応説明をしてお …

no image

小ネタ集

最近覚えた小ネタをのせていきます。 熟練のプログラマからすると当たり前のことが多いと思いますが・・・ Contents1 {}でスコープ限定2 リダイレクト:face-redirect=true3 H …

no image

配列からListへの変換

配列からListにしたいとき、ループでいちいち回さなくても下記の処理で一気にListに変換できます。

Netbeansに教えてもらいま …

no image

Map,KeySetでのSteam

日常で一番よく使うMapループ系処理について Map KeySetのStreamでの書き方 Map<String,String>でEntrySetではなく、KeySetで展開したいときなど …

no image

Fileオブジェクトの操作

業務でテキストファイルを読み込んで、別形式に変換して出力みたいなアプリを作ったときにファイルオブジェクトについていろいろ調べたんでまとめておきます。 Contents1 ファイルオブジェクトとは?2 …

アーカイブ