言語はJAVAを使用します。
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を使用します。
Class.forNameメソッドを使用してください。
テキストファイルから文字列を読み込んでおいて、forNameメソッドに引数としてクラス名を入れればロードできます。
http://milkyway.merseine.nu/Java/Java080.html
Java講座-インスタンスを動的に生成しよう
forNameでクラスオブジェクトを取得してから,newInstanceを使えば良いと思います.
詳しくはURL参照.
ありがとうございます。
しかし、newInstanceでは戻り値がObject型ですので明示的にキャストする必要があります。クラス名のみからインスタンスを作成する必要があります。
実行時に型を指定してキャストすることはできません。多分、変数の型と実行時の型を混同されてます。変数の型は実行時には存在しません。型変換というのも、あくまでコンパイル時の概念であって、実行時には存在しません。実行時に存在するのは、型の変換ではなくて、型のチェックだけです。
お望みのようなキャストの方法が、質問の中心なのであれば、回答は、「できない」以外ありません。
ありがとうございます。
無理ですか。
Example Web Page
URLはダミーです。
直接の質問の答えではないですが、そのようなテキストファイルがあるのなら、そこからスクリプト言語かなにかで、Javaソースを動的に生成されてはどうでしょうか。
テキストファイルが更新された後に、スクリプトをはしらせてソースを生成したあとにコンパイルしなおす必要がありますが。
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | UJML | 3回 | 2回 | 0回 | 2005-08-02 20:00:33 |
2 | noragrammer | 4回 | 3回 | 0回 | 2005-08-03 01:17:42 |
ありがとうございます。
Calss.foNameで取得できるのはClassオブジェクトで指定したクラス名のインスタンスではありません。