けいじゅ@日本ラショナルソフトウェアです. In [ruby-list :9671 ] the message: "[ruby-list:9671] Re: how to create a instance dinamically using String class. ", on Sep/23 02:38(JST) ttate / jaist.ac.jp writes: >立石です。 > >taru> 文字列を与えてクラスのインスタンスを作れませんか? >taru> >taru> Javaで書くと以下みたいな感じです。 >taru> >taru> Class clazz = Class.forName("NewClass"); >taru> Object obj = clazz.newInstance(); > >一応、 String -> Class -> Object を満たすなら、、、 > >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 って感じかな... # オリジナルよりもかえって分かりにくい(^^;;; __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju / rational.com <<---