9
votes

Quel est le sens de? = Dans les opérateurs ABAP?

Ma question est juste en tant que titre, quelle est la différence entre = et ? = dans les opérateurs ABAP?


0 commentaires

4 Réponses :


13
votes

? = code> est le Opérateur de casting . Il est utilisé pour des missions entre variables de référence, dont l'affectabilité est vérifiée dès que le temps d'exécution commence.

c.f. Explication générale chez Wikipedia . P>

Exemple: P>

DATA fruit TYPE REF TO zcl_fruit.

...

case fruit->type.
  when 'apple'.
    seeds = CAST zcl_apple( fruit )->seeds.
  when 'apricot'.
    seeds = VALUE #( ( CAST zcl_apricot( fruit )->kernel ) ).
endcase.


2 commentaires

Notez qu'il est principalement utilisé pour lancer différents types de variables de référence. Lors de l'attribution entre le même type de variable de référence, vous pouvez toujours utiliser =


Je veux juste ajouter cet opérateur est utilisé principalement dans Downcast, lorsque vous affectez une Superclass Obj à une référence d'une sous-classe plus spécifique, elle nécessite une explicite? = (Opérateur de coulée), car cela peut conduire à une erreur d'exécution: Sous-classe? = superclasse



-3
votes

? = est utilisé pour taper de jeter une référence d'objet d'une classe héritée à un objet de la classe Super à partir duquel elle est dérivée.

? =

Type Casting vous aide à faire référence à plusieurs références d'objets de sous-classes dont le type est résolu uniquement au moment de l'exécution. La référence d'objet de la classe parent peut contenir les objets et il y aurait souvent une méthode de classe parent qui peut être utilisée pour déterminer quel objet de la classe de classe est la référence de type de type à l'exécution du temps d'exécution.


0 commentaires

0
votes

Il s'agit d'opérateur de casting (? =) pour des affectations entre les variables de référence, mais en particulier le parole, il s'agit d'un opérateur de coulée.


0 commentaires

1
votes

? = est utilisé pour désigner un objet de super classe par son objet hérité de classe dans la forme

[Référence d'objet de la classe mère]? = [Référence d'objet de la classe héritée]

Ceci est utile lorsque la résolution de type se produit au moment de l'exécution. Tandis que? = Peut être spécifié pour les citadins également, il n'est généralement pas nécessaire.


0 commentaires