鉴于这样的课程:
class B
class << self
attr_accessor :var
end
end
假设我无法修改类B的原始源代码。我怎么能去除类变量var上的setter?我尝试过使用类似B.send(“unset_method”,“var =”)之类的东西,但这不起作用(remove_method也没有,或者用var =方法覆盖那个方法,不做任何事情)。有什么想法吗?
答案 0 :(得分:1)
尝试:
class B
class << self
undef var=
end
end
您可能希望改为使用remove_method:
class B
class << self
remove_method :var=
end
end
要查看差异,请转到: http://www.nach-vorne.de/2008/2/28/undef_method-remove_method/
答案 1 :(得分:0)
class <<B ; remove_method :var= ; end