- PR -

オブジェクトをStringで指定

1
投稿者投稿内容
fly_moon
会議室デビュー日: 2005/03/29
投稿数: 11
投稿日時: 2005-04-01 14:44
こんにちは。
初心者なのであほな質問します。(許してください)

やりたいことは、
・Testクラス--処理を実行させるクラス(mainメソッド)

・Parentクラス--処理を定義した抽象クラス
コード:
  public abstract class Parent {
    abstract String Talk();
  }


・ChildAクラス--Parentクラスを実装したクラス
コード:
  public class Child_A extends Parent {
    protected String Talk(){
      String ret="おはよう";
      return ret;
    }
  }


・ChildBクラス--Parentクラスを実装したクラス
コード:
  public class Child_B extends Parent {
    protected String Talk(){
     String ret="おやすみ";
     return ret;
    }
  }


とクラスを作って、
・conf.xml
コード:
   <abc name="A">
         <class-name>ChildA</class-name>
      </abc>

   <abc name="B">
         <class-name>ChildB</class-name>
      </abc>


と設定ファイルを作成します。

Testクラスのmainメソッドarg[]にA又はBを入れて実行すると
conf.xmlから<class-name>ノードの値を取得して、String変数nmにいれ、

コード:
Parent child;


ここでnmを利用して、
コード:
System.out.println(child.Talk());//"おはよう"又は"おやすみ"


を実現させる方法がわかりません。
Childxクラスをいくつ作成しても、xmlのみの変更にしたいと思っています。
この説明でわかっていただけますか?

Pathか何かで指定してオブジェクトを作成する方法は無いのでしょうか?
VBなんかではCreateObjectとかなんですが、そんな感じのものはJAVAにはないのでしょうか?
fly_moon
会議室デビュー日: 2005/03/29
投稿数: 11
投稿日時: 2005-04-01 14:48
すいません。まちがえました。

conf.xml
コード:
   <abc id="A">
         <class-name>ChildA</class-name>
      </abc>

   <abc id="B">
         <class-name>ChildB</class-name>
      </abc>


こちらです。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2005-04-01 14:49
・XMLの解析の仕方
 →色々方法はあるが、良いAPIはどれかなど
  私は知識があまりないため他の方におまかせします、、

・Stringから動的にクラスをロードする方法
 →ClassクラスのAPI参照

を調べればできるような気がします。
jack_pma
常連さん
会議室デビュー日: 2002/11/15
投稿数: 35
お住まい・勤務地: 埼玉
投稿日時: 2005-04-01 14:50
Class.forName(nm).newInstance();

これでnmの示すクラスのインスタンスが作成できます。
詳しくはAPIリファレンスのjava.lang.Classを読むと書いてありますよ。

※あう、出遅れた・・・同じこと書いちゃってごめんなさい

[ メッセージ編集済み 編集者: jack_pma 編集日時 2005-04-01 14:52 ]
fly_moon
会議室デビュー日: 2005/03/29
投稿数: 11
投稿日時: 2005-04-01 14:56
は・はやい。
早速のお返事ありがとうございます。
今から調べてみます。
fly_moon
会議室デビュー日: 2005/03/29
投稿数: 11
投稿日時: 2005-04-01 15:01
できました!!!!
ありがとうございます〜。
私の周りにはJAVAの経験者がいなくて独学でやっているので(頭があまりよくないのもあるけど・・・)、いつもあほな質問ばっかりすると思いますが、今後とも宜しくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)