如何解决使用参数方法时的运行时错误
我要做什么:
USING class.Bar.
CLASS class.Foo SERIALIZABLE INHERITS Progress.Lang.Object:
DEFINE PRIVATE VARIABLE cRrk_ID AS CHaraCTER NO-UNDO.
CONSTRUCTOR PUBLIC Foo(INPUT objBar AS Bar):
THIS-OBJECT:cRrk_ID = objBar:getRrk_ID(). //Runtime Error: Invalid Handle (3135)
END.
END.
CLASS class.Bar SERIALIZABLE INHERITS Progress.Lang.Object:
DEFINE PRIVATE VARIABLE cRrk_ID AS CHaraCTER NO-UNDO.
CONSTRUCTOR PUBLIC Bar(INPUT pcRrk_ID AS CHaraCTER):
THIS-OBJECT:cRrk_ID = pcRrk_ID.
END.
METHOD PUBLIC CHaraCTER getRrk_ID():
RETURN THIS-OBJECT:cRrk_ID.
END METHOD.
END.
有人可以解释为什么我不能使用对象的方法作为参数吗?
解决方法
您需要新建类。在类中先放置Foo的构造函数。
CONSTRUCTOR PUBLIC Foo(INPUT objBar AS Bar):
objBar = NEW class.Bar () .
THIS-OBJECT:cRrk_ID = objBar:getRrk_ID(). //Runtime Error: Invalid Handle (3135)
END.
,
您可以使用但创建Bar对象并发送给Foo的构造函数:
DEFINE VARIABLE objBar AS "class.Bar" NO-UNDO.
objBar = NEW "class.Bar"("hi").
DEF VARIABLE objFoo AS "class.Foo" NO-UNDO.
objFoo = NEW "class.Foo"(objBar).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。