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