1
如果我有一個子類bar,它是foo類型,foo中的某個方法如何從bar的實例化實際運行時看到它。 例如:Oracle PL/SQL OOP,獲取實例化的類名稱
CREATE OR REPLACE
TYPE foo AS OBJECT
(
mxyzptlk NUMBER, -- Because PL/SQL demands you have an attribute defined.
MEMBER FUNCTION get_actual_class_name
RETURN VARCHAR2
) NOT FINAL;
/
CREATE OR REPLACE
TYPE bar UNDER foo
(
) NOT FINAL;
/
DECLARE
baz bar;
BEGIN
DBMS_OUTPUT.PUT_LINE(baz.get_actual_class_name); -- I would hope to get 'bar' back.
END;
/
在PL/SQL OOP中是否可以自省?
的答案取決於你多麼想解決這個問題,多少你想勾搭試圖解決問題。嘗試「做最簡單的事情」,即在foo中,實現'get_actual_class_name'來返回文字'foo'並在bar中實現'get_actual_class_name'來返回文字'bar'。 –