class A
end
class B
end
class Y < A
end
class Y < B # TypeError: superclass mismatch for Y
end
有没有办法让类引发超类不匹配?我想知道是类Y
导致它并将该类保存在我的裸变量中。
class A
end
class B
end
class Y < A
end
class Y < B # TypeError: superclass mismatch for Y
end
有没有办法让类引发超类不匹配?我想知道是类Y
导致它并将该类保存在我的裸变量中。
class A;end
class B;end
class Y < A;end
x = (class Y < B;end) rescue $!
p x.to_s #=> "superclass mismatch for class Y"
现在从这个字符串"superclass mismatch for class Y"
,你可以得到这个类:
Object.module_eval(x.to_s[/class (?<name>\S*)$/, 'name'], __FILE__, __LINE__)
#=> Y
(取自这个答案)