我正在使用dRuby,基本上我正在调用一个远程方法,该方法返回一个对象。
在客户端,我有这样的代码:
handle_error(response) if response.is_a?(Error)其中response是DRbObject。(我在使用dRuby之前开发了这段代码,如果出现问题,我将返回一个Error对象)。问题是现在
response.is_a?(Error)返回"false“,因为该对象实际上是一个DRbObject。关于如何检查应用程序对象的类,您有什么想法吗?
谢谢!罗伯托
发布于 2008-10-12 15:42:33
虽然我不确定DRb是如何管理远程对象的,但我希望它能修改#kind_of?要保持远程对象上的类层次结构,您可以执行以下操作:
response.kind_of?(Error)如果这不起作用,您可以随时询问它是否响应了特定的方法,然后从那里开始
response.respond_to?(some_method_on_your_errors)发布于 2008-10-12 15:54:11
你可以不使用Duck Typing来解决这个问题吗?检查对象是否响应调用以获取错误信息,而不是检查对象是否为错误。如果是,则根据该信息处理错误,否则处理(非错误)响应。
https://stackoverflow.com/questions/190691
复制相似问题