2012-06-27 2 views
3

я должен перевести некоторый код из C# для Java и у меня есть следующий фрагмент кода:Java эквивалент 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) 
     { 

     } 

Что эквивалент в Java для этого? Спасибо

+0

http://ru.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java – user1329572

ответ

0

Хотя это правда, что аннотации Java разделяют много общего с C# атрибутов, ФП задает конкретный вопрос.

В Java нет прямого эквивалента C# AttributesUsage attribute. Это основной атрибут C#, который вы применяете при создании собственных пользовательских атрибутов. Он используется для управления поведением вашего атрибута.

Вы можете использовать его:

  • ограничить возможные цели вашего атрибута. См. AttributeTargets enumeration для различных опций.
  • Решите, если атрибут будет применяться к унаследованным членам
  • Решите, если вы имеете к этому атрибуту несколько раз на тот же элемент

В этом случае автор C# код застряли с параметрами по умолчанию , Пользовательский атрибут, который они написали, может быть применен к любому классу и не имеет интересного поведения в отношении членов наследования (он применяется к унаследованным членам), и если его можно использовать несколько раз для члена (он не может).

Чтобы перенести этот код на Java, вам необходимо создать аннотацию Java, которая аналогична атрибуту автора C# PVAResponseAttribute.

Однако в этом случае вам не нужно беспокоиться о том, что нет аннотации Java, которая является прямым эквивалентом атрибута C# AttributesUsage.

Смежные вопросы