From: Masato Taruishi Date: 1998-09-24T01:02:23+09:00 Subject: [ruby-list:9678] Re: how to create a instance dinamically using String class. 樽石です。 At Wed, 23 Sep 1998 23:36:54 +0900, Keiju ISHITSUKA wrote: > >clazz = eval("NewClass") > >obj = clazz.new > > > >一行だと > > > >obj = eval("NewClass").new > > > >とかはどうでしょう? > > 何かちょっと違うみたいですね. 上のやり方でやりたいことはできましたが… > clazz = eval("class NewClass; end") > obj = clazz.new > > ですね. > > あと, > > clazz = Class.new > obj = clazz.new > > でも. OKです. ただ. これだと名無しのクラスになっちゃいます. Rubyの場合 > 名前無しのクラスでも問題ないと思いますが, どうしても名前を付けたければ... > > Rubyの場合クラスの名前 == クラス定数名 なので適当なクラス定数に代入す > ることによってクラス名をつけることができます. > > NewClass = Class.new > obj = class.new > > ただ, これだと文字列でクラス名を設定したことになりませんので: > > Object.const_set("NewClass", Class.new) > obj = NewClass.new > > って感じかな... うーん、質問があいまいすぎたかもしれません。 #そのためにJavaで記述したけど…rubyMLにJavaはだめ? ようは動的にクラス型を決めたかったのです。 上の方法だと結局クラス名が静的に決まってしまうので うまくいかない気がします。 ただ、クラスの名前 == クラス定数名は参考になりました。 ありがとうございます。 ---- Masato Taruishi | University of Electro Comunications | Department of Computer Science | Junior http://www.sunicom.co.jp/~taruisma/ | Chofu city Tokyo, JAPAN Key fingerprint = 49 46 74 E1 8D D1 EB 56 8D CA 2A 20 14 9E A9 25