1
比方說,我有一個類Set
我想是這樣的,例如是否有任何破解用自定義類覆蓋類名?
class Set
def initialize(new_name)
self.class = new_name
end
end
如果你做這樣的事情x = Set.new("Dog")
,x.class
將返回Dog
代替Set
。上面的課程並不適合!
比方說,我有一個類Set
我想是這樣的,例如是否有任何破解用自定義類覆蓋類名?
class Set
def initialize(new_name)
self.class = new_name
end
end
如果你做這樣的事情x = Set.new("Dog")
,x.class
將返回Dog
代替Set
。上面的課程並不適合!
我想通了!這應該工作;)
class Obj
def initialize(name)
@klass = Object.const_set(name.capitalize, Class.new()).new()
end
end
試試看:
dog = Obj.new("dog")
dog.class #=> Dog
dog.class.name #=> "Dog"
你能否澄清的問題?這並不完全清楚你想要做什麼。 – Amr 2012-02-20 15:43:07
對於你在Ruby中創建的任何類,當你嘗試'Class.class'時,它返回'Class'吧?我想用自定義一個覆蓋類! 'c = Cat.new(「liza」)''c.class''返回'Cat' – amrnt 2012-02-20 15:53:13
從'#class'方法得到一個不同的名字,或者你期望從其他類重寫類中獲得其他名稱?你希望你的對象在作業後成爲不同類的實例嗎?順便說一句,可能這不關我的事,但爲什麼? – 2012-02-20 15:54:18