检查子类是否是父类的实例

大炮莫耶

我有以下三个类:

class MessageBuilder
   def initialize(template)
       @template = template
       puts @template.instance_of? MessengerTemplate 
   end
end

class MessengerTemplate
    def initialize
        @default_template_id = "111111"
    end
end

class JobTemplate < MessengerTemplate
    def initialize(name)
        @name = name
        @template_id = "2222"
    end
end

我正在尝试检查传递给的参数是否MessageBuilder#initializeMessengerTemplate. 如果没有,我需要抛出一个错误。

当我打电话时:

message = MessageBuilder.new(JobTemplate.new("Invoice"))

构造函数中的以下行:

puts @template.instance_of? MessengerTemplate

打印FALSE

有人可以告诉我我在这里做错了什么吗?

维利安

尝试:

@template.is_a?(MessengerTemplate)

文档中所述

如果classobj的类,或者classobjobj 中包含的模块的超类之一,则返回 true

MessengerTemplate是 的超类@template,因此@template.is_a?(MessengerTemplate) => true

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查父类是否是子类的实例

来自分类Dev

斯威夫特:父类的类函数是否可能返回子类的实例?

来自分类Dev

检查类是否为类的子类而不实例化

来自分类Dev

检查对象是否是通用父类的实例

来自分类Dev

智能地实例化父类的子类

来自分类Dev

从子类的实例访问父类的属性

来自分类Dev

在php中检查对象是否是类的实例,而不是子类的实例

来自分类Dev

Java继承:每次子类扩展它时父类是否实例化?

来自分类Dev

子类是否比父类占用更多的内存

来自分类Dev

子类是否比父类占用更多的内存

来自分类Dev

Crystal 检查是否是类列表的子类

来自分类Dev

检查类是否是特定泛型的子类

来自分类Dev

如何使基于父类实例的子类构造函数?

来自分类Dev

为什么父类要在Python中使用子类的实例?

来自分类Dev

返回父类列表中子类实例的通用方法

来自分类Dev

如何使用父类实例化抽象子类

来自分类Dev

PHP创建子类,它是父类的实际实例

来自分类Dev

从子类函数访问父类实例变量

来自分类Dev

子类可以从 Python 中的父类继承实例变量吗?

来自分类Dev

是否可以将类的实例转换为子类的实例?

来自分类Dev

是否可以从子类和父类中绘制 QWidget?

来自分类Dev

检查类是否已实例化

来自分类Dev

检查是否存在任何类实例

来自分类Dev

检查类是否已实例化

来自分类Dev

检查 Scala 类是否是 T 的实例

来自分类Dev

创建新的子类对象时,是否存在超类实例?

来自分类Dev

创建子类的实例是否自动运行超类的构造函数?

来自分类Dev

遍历页面中的父类,并使用python中的硒确定父类是否存在子类

来自分类Dev

Python:类实例的子类?

Related 相关文章

热门标签

归档