使用参数的方法时出现运行时错误
Runtime error when using a parameter's methods
我目前在尝试使用参数对象的方法时遇到错误。
我想做什么:
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.
谁能解释为什么当对象的方法是参数时我不能使用它?
您需要先在 class.Foo 的构造函数中新建 class.Bar。
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).
我目前在尝试使用参数对象的方法时遇到错误。
我想做什么:
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.
谁能解释为什么当对象的方法是参数时我不能使用它?
您需要先在 class.Foo 的构造函数中新建 class.Bar。
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).