Ein heutiges Erlebnis hat mich etwas nachdenklich gemacht…

report zdm_003.

class lcl_test definition.
public section.
class-methods:
doit.
endclass.

class lcl_test implementation.
method doit.
write ‘Only a Test’.
endmethod.

endclass.

data:
go_test type ref to lcl_test.

start-of-selection.

create object go_test.
lcl_test=>doit( ).

go_test->doit( ). “This shouldnt work…

In dem SAP NetWeaver System (Basis-Release 7.31) gab es zu obigen Programm keine Warnmeldung… Ich habe wenigstens einen Hinweis erwartet, dass eine statische Methode nicht gleich wie eine Instanz Methode aufgerufen werden kann. Leider gar nichts, nicht einmal das ABAP Test Cockpit gibt einen Hinweis auf obige Situation!

Wenn ich aus der statischen Methode einen Instanz Methode machen (statt class-methods nur methods) Erhalte ich einen Syntaxfehler: “Die Angabe “class=>method” darf nur bei statischen Methoden verwendet werden.” Andersherum würde ich mir wenigstens einen Hinweis wünschen

Blog ABAP Objects: statische Methode auch von Instanzobjekt aufrufbar