2012-06-27 4 views
3

je dois traduire un code de C# à Java et je le morceau de code suivant:équivalent Java pour AttributeUsage C#

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] 
    public class PVAResponseAttribute : XmlRootAttribute 
    { 
     private const string ROOT_ELEMENT_NAME = "data"; 

     public PVAResponseAttribute() 
      : base(ROOT_ELEMENT_NAME) 
     { 

     } 

Quel est l'équivalent en Java pour cela? Merci

+0

http://fr.wikipedia.org/wiki/Comparison_de_C_Sharp_and_Java – user1329572

Répondre

0

Alors il est vrai que les annotations de Java partagent beaucoup en commun avec les attributs C#, l'OP pose une question précise.

Il n'y a pas d'équivalent direct en Java de C# AttributesUsage attribute. Il s'agit d'un attribut principal C# que vous appliquez lors de la création de vos propres attributs personnalisés. Il est utilisé pour contrôler le comportement de votre attribut.

Vous pouvez l'utiliser pour:

  • Limiter les cibles possibles de votre attribut. Voir le AttributeTargets enumeration pour les différentes options.
  • Decide si l'attribut appliquera aux membres hérités
  • Décider si vous êtes autorisé à cet attribut plusieurs fois sur le même membre

Dans ce cas, l'auteur du code C# est coincé avec les paramètres par défaut . L'attribut personnalisé qu'ils ont écrit peut être appliqué à n'importe quelle classe et n'a pas de comportement intéressant en ce qui concerne les membres d'héritage (il s'applique aux membres hérités) et s'il peut être utilisé plusieurs fois sur un membre (il ne peut pas).

Pour porter ce code sur Java, vous devez créer une annotation Java qui fait la même chose que l'attribut C# PVAResponseAttribute de l'auteur.

Cependant, dans ce cas , vous n'avez pas besoin de vous inquiéter de l'absence d'une annotation Java directement équivalente à l'attribut C# AttributesUsage.