RubyObject クラスのコンストラクタ
RubyObject
1 private RubyObject(){}; 2 3 public RubyObject (Ruby runtime, RubyClass metaClass) { 4 this.metaClass = metaClass; 5 6 if (runtime.is ObjectSpac eEnabled()) addToObjec tSpace(runtime); 7 if (runtime.ge tSafeLevel () >= 3) taint(runtime); 8 } 9 10 protected RubyObject (Ruby runtime, RubyClass metaClass, boolean useObjectS pace) { 11 this.metaClass = metaClass; 12 13 if (useObjectS pace) addToObjec tSpace(runtime); 14 if (runtime.ge tSafeLevel () >= 3) taint(runtime); 15 }
RubyObject
ObjectSpac
metaClass変数には、オブジェクトのメタクラスが入ります。メタクラスはRubyClassクラスのインスタンスです。そして、RubyClassクラスは、RubyModule
また、デフォルトコンストラクタがプライベートになっています。これは、NEVERとUNDEFという特殊な定数のために使われています。NEVERは、配列の最後に配置される「番人」として利用されるとJavaDocに書かれていますが、どうやら必ずしもそうというわけではないようです。
posted by
takai
on Tue 28 Oct 2008
at 23:36