人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

クラス名のリストがテキストファイルであった場合それを読み込んでそのクラス名のインスタンスを動的に作成する方法あるでしょうか。
言語はJAVAを使用します。

●質問者: halyan
●カテゴリ:コンピュータ
✍キーワード:Java インスタンス クラス テキスト ファイル
○ 状態 :終了
└ 回答数 : 5/7件

▽最新の回答へ

1 ● たーちゃん
●10ポイント

http://java.sun.com/j2se/1.5.0/docs/api/java/beans/EventHandler....

EventHandler (Java 2 Platform SE 5.0)

Class.forNameを使うことで動的に指定したクラス名のインスタンスが作成されます。返り値の型はObjectですが、実際の型は作成したクラスのものになっています。C言語のようなキャストの必要は全くありません。

http://www.hatena.ne.jp/1121941919 の6番以降で回答しましたが、動的なメソッドの呼び出しにはBeans APIを使用します。


2 ● Keiichiro
●18ポイント

http://www.asahi-net.or.jp/~dp8t-asm/java/tips/HowToGetClass.htm...

?N???X??l??

Class.forNameメソッドを使用してください。

テキストファイルから文字列を読み込んでおいて、forNameメソッドに引数としてクラス名を入れればロードできます。

◎質問者からの返答

ありがとうございます。

Calss.foNameで取得できるのはClassオブジェクトで指定したクラス名のインスタンスではありません。


3 ● wasisan
●18ポイント

http://milkyway.merseine.nu/Java/Java080.html

Java講座-インスタンスを動的に生成しよう

forNameでクラスオブジェクトを取得してから,newInstanceを使えば良いと思います.

詳しくはURL参照.

◎質問者からの返答

ありがとうございます。

しかし、newInstanceでは戻り値がObject型ですので明示的にキャストする必要があります。クラス名のみからインスタンスを作成する必要があります。


4 ● renmin-plus
●17ポイント

http://dummy/

実行時に型を指定してキャストすることはできません。多分、変数の型と実行時の型を混同されてます。変数の型は実行時には存在しません。型変換というのも、あくまでコンパイル時の概念であって、実行時には存在しません。実行時に存在するのは、型の変換ではなくて、型のチェックだけです。


お望みのようなキャストの方法が、質問の中心なのであれば、回答は、「できない」以外ありません。

◎質問者からの返答

ありがとうございます。

無理ですか。


5 ● s
●17ポイント

http://www.example.com/

Example Web Page

URLはダミーです。

直接の質問の答えではないですが、そのようなテキストファイルがあるのなら、そこからスクリプト言語かなにかで、Javaソースを動的に生成されてはどうでしょうか。

テキストファイルが更新された後に、スクリプトをはしらせてソースを生成したあとにコンパイルしなおす必要がありますが。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ