Code: Alles auswählen.
CLASS lcl_test DEFINITION.
PUBLIC SECTION.
DATA flag TYPE c LENGTH 1.
ENDCLASS.
Code: Alles auswählen.
METHODS testemich
IMPORTING
!object TYPE REF TO lcl_test .
Dabei ist es egal, ob ich die lokale Klasse in Lokale Definitionen/ Implementierungen oder in Klassenrelevante Lokale Definitionen schreibe.Syntaxchecker hat geschrieben:Public Section ZCL_TT
Der Typ "LCL_TEST" ist unbekannt.
Dann müsste sie ja aber in einer privaten Methode verfügbar sein (Schnittstelle) aber das funktioniert nicht.ralf.wenzel hat geschrieben:Das ist aber schlüssig, dass eine lokale Klasse nur private (also lokal) verfügbar ist.
Das ist eine gute Idee! Dann muss ich zwar eine globale Klasse definieren, aber nur eine.ralf.wenzel hat geschrieben:Was hilft: Globale abstrakte Klasse definieren und lokal von dieser erben. Ist nicht ganz dasselbe was du willst, aber es hilft vielleicht.
Code: Alles auswählen.
INTERFACE lif_test.
METHODS: get_this, get_that.
ENDINTERFACE.
CLASS lcl_test DEFINITION.
PUBLIC SECTION.
METHODS: do_something.
ENDCLASS.
Code: Alles auswählen.
CLASS lcl_test IMPLEMENTATION.
METHOD do_something.
MESSAGE 'Hallo Welt!' TYPE 'I'.
ENDMETHOD.
ENDCLASS.
Code: Alles auswählen.
CLASS zcl_test_nested DEFINITION PUBLIC FINAL CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_if_test TYPE REF TO lif_test .
DATA mo_cl_test TYPE REF TO lcl_test .
METHODS get_object
RETURNING
VALUE(ro_object) TYPE REF TO lcl_test .
ENDCLASS.
CLASS zcl_test_nested IMPLEMENTATION.
METHOD get_object.
CREATE OBJECT ro_object.
ENDMETHOD.
ENDCLASS.
Code: Alles auswählen.
INTERFACE lif_test DEFERRED.
CLASS lcl_test DEFINITION DEFERRED.
Folgende Benutzer bedankten sich beim Autor Lukas Sanders für den Beitrag (Insgesamt 5):
ewx • black_adept • msfox • IHe • sersen
Das war die Schlüsselstelle. Jetzt weiß ich auch, wofür das so getrennt wird.