class A
end
class B
end
class Y < A
end
class Y < B # TypeError: superclass mismatch for Y
end
有没有办法让课程引发超类不匹配?
我想知道它是类Y
导致它并在我的裸变量中保存该类。
答案 0 :(得分:0)
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
(取自this SO answer)